当前位置: 首页 > 知识库问答 >
问题:

查询Dsl,结合了标准JPA和Hibernate - 类级@Where注释?

江礼骞
2023-03-14

我想知道是否可以将hibernate注释,尤其是那些类级注释,与QueryDsl中的标准JPA注释结合起来。像这样...

 @javax.persistence.Entity
 @org.hibernate.annotations.Where(clause="someProperty = (SELECT ....)")
 @javax.persistence.Table(name="anyname")
 public class SomeClass {...
 }

目前我们只使用JPA注释,但是我们也必须加入一些hibernate注释。

在 apt 插件配置中将“JPA 注释处理器”替换为“Hibernate注释处理器”是否安全?*)

        <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,它显然不承认任何hibernate的细节吗?

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

我也需要切换到Hibernate会话吗?

共有1个答案

朱俊雅
2023-03-14

Querydsl 使用Hibernate注释处理器只是为了确定字段和/或方法中是否存在相关注释。

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

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

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

 类似资料:
  • 问题内容: 问题: 1)如果我从Hibernate 4.x升级到Hibernate 5.x,我仍然可以使用“旧”条件查询还是仅使用新的 Typed JPA2条件查询?旧的是否已弃用,还是可以同时使用? 2)我是否正确理解新的类型化标准会迫使我为我拥有的 每个 实体类创建第二个类,从而使类的数量重复?我应该手动创建这些类吗?如果没有,怎么办?兰特:必须重复上课似乎很奇怪,所以我一定会对它有所误解?那

  • 主要内容:标准WHERE示例WHERE子句用于对数据库应用条件并基于该条件获取数据。 在Criteria API中,AbstractQuery接口的)方法用于设置查询条件。 标准WHERE示例 在这里,我们将在表上执行多个操作。假设该表包含以下记录 - 现在,请按照以下步骤执行操作: - 第1步: 创建一个实体类。在包下创建了类文件。 该类包含三个属性:,,以及所有必需的注解。 文件:StudentEntity.java -

  • 问题内容: 有一个结构。我想以这种方式链接这三个实体:公司应包含ID,公司名称和部门列表,每个部门都有一个工人列表,ID和部门名称。每个工人都有名字,身份证。 我试图与一对多和多对一建立联系,但未成功。 公司 部 工人 我从开始: 它填充公司,但不填充其他表,也没有创建任何联接(映射)错误: 问题答案: 除了Glenn Lane的答案中提到的级联,您还需要了解双向关联是如何工作的。 它们有一个所有

  • 我正在尝试将Hibernate Criteria与命名查询进行性能比较。我知道这一切都取决于实际查询本身,最后一个词是它们在运行时的配置文件。尽管如此,仍在尝试整理每个查询的内容。 我试图将Q分为两部分 PART-1 -- Hibernate条件和命名查询的基本工作原理: Criteria适用于参数。在运行时,查询不需要解析——有几个搜索和“表单存在”参数,例如对结果进行排序,将它们返回为可滚动的

  • 我的问题是空值必须是最后一个order by语句。下面是我的代码截图。我使用javax持久性标准生成器。我的问题很复杂。 如何通过criteria builder以零价格完成订单?

  • 关于注释和注释,我遇到了一个有趣的问题在Spring Boot项目上,spring data jpa也在项目中。 基本上,我有软删除机制,这是为实体设置一个有效的日期(例如属性列在实体类中带有属性)。这些实体用注释类似于。这样,将设置为now和before的软删除的实体自动删除。(例如实体类) 我还有一些其他实体没有(例如实体类) 以及其他一些可用的表。如果是Jpa查询带注释的方法。我正面临着一些