【发布时间】:2013-04-15 09:07:47
【问题描述】:
我想知道是否可以将休眠注释,特别是那些类级别的注释与 QueryDsl 中的标准 JPA 注释结合起来。就这样……
@javax.persistence.Entity
@org.hibernate.annotations.Where(clause="someProperty = (SELECT ....)")
@javax.persistence.Table(name="anyname")
public class SomeClass {...
}
目前我们只使用 JPA 注释,但我们还必须合并一些 hibernate 注释。
在apt插件配置中用“HibernateAnnotationProcessor”替换“JPAAnnotationProcessor”是否安全? *)
<plugin>
<groupId>com.mysema.maven</groupId>
<artifactId>apt-maven-plugin</artifactId>
<version>1.0.8</version>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>process</goal>
</goals>
<configuration>
<outputDirectory>target/generated-sources/java</outputDirectory>
<processor>com.mysema.query.apt.hibernate.HibernateAnnotationProcessor</processor>
<sourceDirectory>src/gen/java</sourceDirectory>
</configuration>
</execution>
</executions>
</plugin>
*) 但是,在将注释处理器替换为“HibernateAnnotationProcessor”之后,我没有注意到生成的 JPA 查询有任何变化。是因为我仍在使用显然不承认任何休眠细节的 JPA?
JPAQuery query = new JPAQuery (this.emf.createEntityManager());
我是否也需要切换到 Hibernate Session?
【问题讨论】:
-
您是否记录了生成的 SQL 查询并验证未应用注入的 where 过滤器?
标签: java hibernate jpa annotations querydsl