我有一个命名查询,如下所示;
@NamedQuery(name = "MyEntityClass.findSomething", query = "SELECT item FROM MyTable mytbl")
现在我想将动态排序子句附加到此查询(基于UI参数)
我可以得到一个使用JPQL做同样事情的例子吗(比如如何在实体类中设置动态ORDER BY)
我已经尝试过使用CriteriaQuery,但现在正在寻找JPQL实现。
@namedQuery
JPQL
转换为SQL
em.createQuery()
JPQL
转换为SQL
。 对JPA 2.1的补充
从JPA2.1开始,可以通过编程方式定义命名查询。
这可以使用entityManagerFactory.addNamedQuery(String name, Query)
来实现。
例子:
Query q = this.em.createQuery("SELECT a FROM Book b JOIN b.authors a WHERE b.title LIKE :title GROUP BY a");
this.em.getEntityManagerFactory().addNamedQuery("selectAuthorOfBook", q);
// then use like any namedQuery
参考这里
例如,如果将orderby字段定义为应用程序参数,这可能会很有用。因此,当应用程序启动或在第一次运行查询时,可以使用定义的OrderBy字段定义NamedQuery。
另一方面,如果您的OrderBy可以随时更改(或更改很多),那么您需要动态查询而不是NamedQuery(静态)。每次(根据性能)(重新)创建NamedQuery是不值得的。
根据定义,NamedQuery不是动态的,以编程方式更改它们是不正确的。
因此,方法是创建一个JPQL查询(但不是命名查询),如下所示:
TypedQuery<MyEntity> query = em.createdQuery("SELECT item FROM MyEntity item ORDER BY "+sortingCol, MyEntity.class);
另一方面,如果您真的想使用命名查询,可以通过以下方式:
@NamedQuery(name = "MyEntityClass.findSomething", query = MyEntity.NAMED_QUERY)
@Entity
public class MyEntity {
public static final NAMED_QUERY= "SELECT item FROM MyTable mytbl";
//+your persistent fields/properties...
}
//and later in your code
TypedQuery<MyEntity> query = entityManager.createQuery(MyEntity.NAMED_QUERY + " ORDER BY " + sortingCol, MyEntity.class);
我有一个命名查询,如下所示; @NamedQuery(name=“MyEntityClass.findSomething”,query=“从MyTable mytbl中选择项”) 现在我需要将动态排序子句附加到此查询(基于UI输入参数) 所以我的问题是,我仍然可以在实体类中定义NamedQuery吗。 我已经使用StringBuffer在我的Business Impl类中定义了命名查询,并为排序顺
问题内容: 我有这种形式:http : //jsfiddle.net/dfJeN/ 如您所见,输入的名称值是静态设置的: ,则表单验证可以正常工作(添加一些内容并从输入中删除所有文本,必须显示一个文本)。 然后,我尝试动态设置名称值:http : //jsfiddle.net/jNWB8/ 然后我将其应用于我的验证 (此模式将在ng-repeat中使用),但我的表单验证已损坏。它在浏览器中已正确解
问题内容: 我有一个关于使用JdbcTemplate进行动态查询的问题。 我的代码如下: 现在,我的问题是,我想要与插入查询中的自动生成问号相同数量的“值”。 现在,值变量考虑为一个字符串,因此,如果我有2个或更多问号,则在值变量中只有一个用逗号分隔的完整字符串,因此它不起作用。 见下面我的查询: 我想要如下: 问题答案: }
我正在为spring批处理使用java配置(spring boot)。我有一个员工Id列表,对于每个Id,我需要运行一个查询(如下所示),然后处理数据。 我知道我们可以使用阅读器。setPreparedStatementSetter动态设置上述SQL中的参数。但是,我不确定如何对列表中的每个员工id重复批处理过程。即使我将reader()标记为@StepScope,也只会调用一次reader。(即
有人能指出openNLP NameFinder模块使用的算法吗?代码很复杂,只有很少的文档记录,并且将其作为黑匣子(提供默认模型)使用给我的印象是它主要是启发式的。以下是一些输入和输出示例: 输入: 约翰·史密斯很沮丧。 约翰·史密斯很沮丧。 巴拉克·奥巴马感到沮丧。 乌戈·查韦斯很沮丧。(不再) 杰夫·阿特伍德很沮丧。 刘冰对openNLP NER模块感到失望。 诺姆·乔姆斯基对这个世界感到沮丧
我目前正在从事一个java web服务器项目,该项目需要使用自然语言处理,特别是实体识别(Entity Recognition,NER)。 我在java中使用OpenNLP,因为添加自定义训练数据很容易。它工作得很好。 然而,我还需要能够提取实体内部的实体(嵌套命名实体识别)。我试着在OpenNLP中这样做,但我遇到了解析错误。所以我猜OpenNLP很遗憾不支持嵌套实体。 下面是一个我需要解析的示