【发布时间】:2011-05-28 04:26:28
【问题描述】:
@NamedQueries(
{
@NamedQuery(name = "GetAvailableProducts", query = new StringBuilder("").append("SELECT p FROM Product p WHERE p.type= :type AND (p.available = 'ALL' OR").append(isTest() ? "(p.available = 'TEST' OR)" : " ").append("p.available = :available)")),
}
这给了我一个错误,它无法识别 isTest() 方法。如果我像 if(1==1) 或类似的那样放置 if 语句,而不是这种方法,它会在 Intellij IDEA 中显示“属性必须是常量”。如何解决?
【问题讨论】:
-
有什么棘手的方法可以做到。例如,定义两个具有相同名称“GetAvailableProducts”的 namedQueries 并将它们放在一个抽象类中。并在我的命名查询类中实现它。但是,namedQuery 将激活我想要的那个。所以我会被选一个namedQuery,我不会再改变我的namedQuery了。但我想拥有一次这样的权利..
标签: java jpa annotations entity named-query