gpt4 book ai didi

java - 连接到类名的下划线是什么意思?

转载 作者:IT老高 更新时间:2023-10-28 21:13:00 24 4
gpt4 key购买 nike

我正在阅读 "Dynamic, typesafe queries in JPA 2.0"文章并偶然发现了这个例子:

EntityManager em = ...
CriteriaBuilder qb = em.getCriteriaBuilder();
CriteriaQuery<Person> c = qb.createQuery(Person.class);
Root<Person> p = c.from(Person.class);
Predicate condition = qb.gt(p.get(Person_.age), 20);
// ^^ --- this one
c.where(condition);
TypedQuery<Person> q = em.createQuery(c);
List<Person> result = q.getResultList();

我想知道,这里的下划线到底是什么意思?

由于下划线是类名的有效部分,我不明白为什么可以在 JPA 中使用它。我用我的代码中的现有实体检查了这一点,当然我的类无法解析为 ClassName_

最佳答案

那是metamodel为了坚持。这是您在 Java 中执行类型安全 JPA 查询的方法。它允许查询静态检查您的查询,因为 classBar_ 描述了您的 JPA Bar。在 HQL 中,您很容易输入错误的查询,直到它运行才知道。

所以从技术上讲,_ 没有任何意义,但它是 JPA 用来命名 JPA 持久模型类的元模型类的约定。 Model_Model的元模型,它提供了可查询字段的名称及其类型。

关于java - 连接到类名的下划线是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9379536/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com