java - QueryDsl,结合标准 JPA 和 Hibernate 的类级 @Where 注释?

标签 java hibernate jpa annotations querydsl

我想知道是否可以将 hibernate 注释,尤其是那些类级注释与 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 查询有任何变化。是因为我仍在使用显然不承认任何 hibernate 细节的 JPA 吗?

  JPAQuery query = new JPAQuery (this.emf.createEntityManager());

我是否也需要切换到 Hibernate Session?

最佳答案

Querydsl 使用 HibernateAnnotationProcessor 来决定字段和/或方法中是否有相关注释。

如果仅对字段进行注释,则将它们用作属性,如果仅对 getter 进行注释,则使用它们。如果两者都使用,getter 信息将覆盖字段信息。

对于类级别注释,如果您使用一个处理器或另一个处理器并没有什么区别,如果您的类主要使用 JPA 注释进行注释。

使用的注解处理器不会影响您的实体类型在 JPAQuery 中的处理方式。

关于java - QueryDsl,结合标准 JPA 和 Hibernate 的类级 @Where 注释?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16147541/

相关文章:

java - JPA/Hibernate - 防止在 PreRemove 处理程序中删除?

java - 你喜欢 JPA 2.0 的 Criteria api 吗?你在框架中使用它吗?

java - 如何使用 HttpClient 处理 HTTP/2 GOAWAY?

java - JBoss 5.0.1 上的 servlet jar 文件在哪里?

java - 我可以仅将 java.util.Optional 中的值序列化为 json 吗?

java - hibernate 。为什么从数据库查询的实体以随机顺序存储在集合中?

jpa - 如何在Spring JpaRepository中使用JPQL选择组中的最新记录?

java - 将一个原始变量分配给另一个变量与将引用变量分配给另一个变量

hibernate - @Transactional 方法中的 LazyInitializationException

java - 找不到具有多个上下文的属性 :property-placeholder