gpt4 book ai didi

java - hibernate 流程

转载 作者:太空宇宙 更新时间:2023-11-04 07:28:35 27 4
gpt4 key购买 nike

我是 Hibernate 的新手。我无法理解 Hibernate 的流程。请澄清我的疑问。

我有“HibernateUtil.java ”和以下语句

sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();

configure() 依次运行“hibernate.cfg.xml ”并返回具有数据库连接属性的“sessionFactory”对象。

我在“UNIV ”下创建了一个表“STUDENT ”

在“univ”java类包下我有-

1) Student.hbm.xml(映射到 UNIV.STUDENT 表)

2) Student.java(带有 setter getter 方法的类,用于 STUDENT 表)

当我在 HQL 查询 0 中查询“from univ.Student”时,我得到 STUDENT 的表内容

但是“from univ.Student”实际上返回“Student 类的实例”

我在这里有点困惑......

1)Student.hbm.xml 文件何时被调用

2)“HQL”与“Java Class Object”交互,而“SQL”与“Database Table”交互。

在相应的 SQL 命令使用 Student.hbm.xml 映射文件获取表内容后,“from univ.Student ” hql 命令是否显示“Student ”类实例中的表内容

                                  (or) 

对应的SQL命令直接显示表内容,无需访问“Student”类

最佳答案

  1. .hbm.xml 文件由configure() 加载,它会扫描类路径以查找具有相应类名的.hbm.xml 文件。您还可以显式指定其他 .hbm.xml 文件、禁用自动加载,并在主 hibernate.cfg.xml 文件中执行一些其他操作。就个人而言,对于较小的项目,我喜欢将所有实体类的所有映射放在一个顶级 .hbm.xml 文件中,并在 cfg 文件中指定它。

  2. 不完全是。 HQL 首先被转换为 SQL(基于从 hbm 文件/注释解析的信息),因此“from univ.Student”最终将成为 SQL“SELECT * FROM STUDENT”,然后 Hibernate 将遍历结果集并填充 Student 对象(也基于从 hbm 文件/注释中解析的信息)。

关于java - hibernate 流程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18132825/

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