Java 在@NamedQuery head中执行静态方法

Java 在@NamedQuery head中执行静态方法,java,hibernate,static-methods,named-query,Java,Hibernate,Static Methods,Named Query,我想在类的@NamedQuery中执行一个静态方法。像这样: @NamedQuery(name = "allFailures", query = "select failureInfo from FailureInfo failureInfo where failureInfo.counter <="+ CountClass.myMethod() + "AND failureInfo.counter <> 0 order by failureInfo.counter asc L

我想在类的
@NamedQuery
中执行一个静态方法。像这样:

@NamedQuery(name = "allFailures", query = "select failureInfo from FailureInfo failureInfo where failureInfo.counter <="+ CountClass.myMethod() + "AND failureInfo.counter <> 0 order by failureInfo.counter asc LIMIT 1")

@NamedQuery(name=“allFailures”,query=“从failureInfo failureInfo where failureInfo.counter中选择failureInfo如果我正确理解您的问题,您希望对查询进行参数化。您可以将常规参数与命名查询一起使用,如下所示:

@NamedQuery(name = "allFailures", query = "select failureInfo from FailureInfo
                                  failureInfo where failureInfo.counter <= :counter 
                                  AND failureInfo.counter <> 0 
                                  order by failureInfo.counter asc LIMIT 1")
@NamedQuery(name=“allFailures”,query=“从failureInfo中选择failureInfo

failureInfo where failureInfo.counter我认为命名查询应该是constantFirst,thx作为您的答案。我必须在类中的何处编写此方法?@kostja我看到了。我必须在类中命名查询所在的位置编写方法吗?还是在其他地方?您可以编写两个方法-创建查询的方法和创建查询的方法生成参数值-在您选择的任何类中。导入实体类使您可以访问查询定义。因此,我不必调用此方法?我只需在名为query的类中编写它?对不起,我不确定我是否理解。方法
MyClass.myMethod()无论何时计算查询,都将调用
,这发生在
query.setParameter(…)
调用中。
TypedQuery<FailureInfo> query =
      em.createNamedQuery("FailureInfo.allFailures", FailureInfo.class);
query.setParameter("counter", MyClass.myMethod());
query.getResultList();