0

我在播放(1.2.4)中编写的以下代码有问题:

List<MSprache> sprachen = MSprache.find("active = ?", true).fetch();
List<MFieldDscr> textey     = MFieldDscr.find("sprache IN", sprachen).fetch();

如果我执行一个测试这部分代码的测试,则会显示以下错误:

A java.lang.IllegalArgumentException has been caught, org.hibernate.hql.ast.QuerySyntaxException: unexpected token: null near line 1, column 48 [from models.Sprache.MFieldDscr where sprache IN]

我不明白错误在哪里。

4

1 回答 1

1

我不太确定你想要实现什么,
但我认为这就是你想要的:

String jpql = "FROM MFieldDescr fd WHERE fd.sprache "
            + "IN ( SELECT s FROM MSprache s WHERE s.active = ? ) ";
List<MFieldDscr> textey = MFieldDescr.find( jpql, true ).fetch();

这将找到所有具有活动集的MFieldDescr实体。 MSprachetrue


顺便说一下,用于查询实体的语言是 JPQL,以防您想了解更多信息。

以下是一些有用的链接:

于 2012-05-13T16:27:31.413 回答