JPA eclipselink全局批取?
加入时,我每行有一个选择。解决方案是批量提取,但我不希望注释无处不在JPA eclipselink全局批取?,jpa,eclipselink,jpa-2.0,Jpa,Eclipselink,Jpa 2.0,加入时,我每行有一个选择。解决方案是批量提取,但我不希望注释无处不在 为什么我需要这个?每行选择一个是可怕的。。。如何全局设置此项?干杯也许不是理想的解决方案,但您可以尝试使用JPA提示和Java泛型: 公共类型查询 createBatchQuery(字符串ql、类clazz、字符串类型、字符串大小、字符串关系){ 返回em.createQuery(jpql,clazz) .setHint(QueryHints.BATCH_类型,类型) .setHint(QueryHints.BATCH_大小
为什么我需要这个?每行选择一个是可怕的。。。如何全局设置此项?干杯也许不是理想的解决方案,但您可以尝试使用JPA提示和Java泛型:
公共类型查询
createBatchQuery(字符串ql、类clazz、字符串类型、字符串大小、字符串关系){
返回em.createQuery(jpql,clazz)
.setHint(QueryHints.BATCH_类型,类型)
.setHint(QueryHints.BATCH_大小,大小)
.setHint(QueryHints.BATCH,relation);
}
然后,可以全局使用上述查询,并根据您的需要使用具体的查询实现进行扩展,即
String jpql=“从c国选择c,其中c.name=:name”;//或@NamedQuery
TypedQuery q=createBatchQuery(jpql,Country.class,“JOIN”,“64”,“c.cities”);
q、 setParameter(“名称”、“澳大利亚”);
国家c=q.getSingleResult();
关于这一主题的文章:
c.cities
遵循JPQL约定,因此需要在TypedQuery.setHint
方法和@QueryHint
注释中指定为字符串。不幸的是,我不知道DeltaSpike,但您肯定可以使用javax.persistence.EntityManager
进行此类查询。