当前位置: 首页 > 面试题库 >

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

仲和韵
2023-03-14
问题内容

我在阅读“ 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_


问题答案:

那就是持久性的元模型。这是您可以在Java中键入安全JPA查询的方法。它允许查询静态地检查您的查询,因为类Bar_描述了您的JPA
Bar。在HQL中,您可以轻松键入错误的查询,直到查询运行才知道。

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



 类似资料:
  • 问题内容: 可以解释一下在Python中使用对象名称前加下划线的含义吗?另外,说明单首和双首下划线之间的区别。无论所讨论的对象是变量,函数,方法等,该含义是否保持不变? 问题答案: 单下划线 类中带有下划线的名称仅是为了向其他程序员表明该属性或方法旨在私有。但是,名称本身并没有做任何特别的事情。 引用PEP-8: :“内部使用”指标较弱。例如,不导入名称以下划线开头的对象。 双下划线(名称改写)

  • 我发现 _A 是可以访问的但是 __B 是无法访问的会报错:Unexpect System Error:'A' object has no attribute .... 不是说下划线只是约定而已么,怎么其实还是有实际作用的

  • 问题内容: 我看到从这个例子上: 并且似乎无法找到import语句前面的下划线是什么意思。 问题答案: 简短答案: 它仅出于副作用导入软件包。 从执行规范: 要仅出于副作用(初始化)导入软件包,请使用空白标识符作为显式软件包名称: 导入_“ lib / math” 在sqlite3 对于go-sqlite3,下划线导入用于将驱动程序注册为该函数中的数据库驱动程序的副作用,而无需导入任何其他函数:

  • 我正在学习基本的PHP,试图阅读JOOMLA核心文件并对其有一些基本的了解,但我遇到了很多运算符,如“:”等,我不懂。 我在谷歌做了一些研究,有很多关于双冒号(::)的解释,但在“::”上几乎什么都没有,包含这个操作符的文件之一是joomla site root/mod_login/tmpl/default。php,行是 那么这意味着什么呢?是“JRoute::(('index.php',true

  • 在参考Flutter教程时,我遇到了一个下划线。 null

  • 问题内容: 我正在做一个redux教程,并且看到这样的呼叫: 在其他地方定义为: 下划线是什么“ _”?为什么使用它? 问题答案: 这是私有方法和变量的约定。在JavaScript中,没有类的真正隐私。 这意味着您不应在对象之外使用这些方法(以“ ” 开头)。从技术上当然可以,但是“ ”表示您不应该这样做。