Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java hibernate 4.3.x-加载所有实体注释类_Java_Hibernate_Jpa_Hibernate 4.x - Fatal编程技术网

Java hibernate 4.3.x-加载所有实体注释类

Java hibernate 4.3.x-加载所有实体注释类,java,hibernate,jpa,hibernate-4.x,Java,Hibernate,Jpa,Hibernate 4.x,在我工作的项目中,我不使用Spring,只使用Hibernate。我不想将hbm.xml文件用于实体映射/描述等。我只想使用注释 如何告诉Hibernate从某些包中加载所有实体/表注释类 我在网上搜索过,但我没有运气。我也找不到关于最新Hibernate版本的信息(大部分是过时的文章/帖子/等等) 编辑1: hibernate文档页面显示: 对象/关系映射可以用三种方法定义: 1) 使用Java 5注释(通过Java持久性2注释) 2) 使用JPA2 XML部署描述符(在第XXX章中描述)

在我工作的项目中,我不使用Spring,只使用Hibernate。我不想将hbm.xml文件用于实体映射/描述等。我只想使用注释

如何告诉Hibernate从某些包中加载所有
实体/表
注释类

我在网上搜索过,但我没有运气。我也找不到关于最新Hibernate版本的信息(大部分是过时的文章/帖子/等等)

编辑1:

hibernate文档页面显示:

对象/关系映射可以用三种方法定义:
1) 使用Java 5注释(通过Java持久性2注释)
2) 使用JPA2 XML部署描述符(在第XXX章中描述)
3) 使用称为hbm.XML的Hibernate遗留XML文件方法

就这样,我只想用 SessionFactory/SessionHibernateAPI

编辑2:


尽管我的问题被标记为重复,但事实并非如此,因为我不想使用JPA(以及隐含的描述符),而只想使用上面列出的方法1)

好的,这在Hibernate 4.3.x中是不可能的,而且似乎从来都不可能

另请参见此问题/答案(尽管这篇文章很旧,但它很有效):

1) 在我对此做了一些研究之后,似乎有一个常见的误解是,
Configuration.addPackage
允许我们从给定的包中加载所有实体类。这不是真的。通过查看hibernate源代码,我很难找到它,只有在那时,我才发现上面的问题/答案证实了这一点。事实上,我不太清楚
addPackage
做了什么,但它对我的情况似乎不是很有用

2) 似乎我们可以做的一件事是为我们自己的每个注释实体类调用
Configuration.addAnnotatedClass
,例如在编译时硬编码这些类。或或者,通过使用或,我们可以在运行时动态查找给定包中的所有(即我们自己的)实体类,循环遍历它们,并仍然调用
Configuration.addAnnotatedClass
。反射的唯一问题是它本身有很多依赖项。因此,如果我们决定使用反射,我们必须为这个简单的事情添加9个新的罐子(多痛苦啊)。有番石榴比较容易,我们可以叫它
ClassPath.from
(
Thread.currentThread().getContextClassLoader()
).
GetToLevel类(pckg)

如果有人有更好的方法,请随时提供。

我会接受最好的答案,不一定是我的答案

@hwellmann如果我不想要persistence.xml而只想要hibernate.cfg.xml怎么办?我需要两者都要吗?我只是希望hibernate.cfg.xml具有hibernate扫描带注释实体类的行为。那不可能吗@如果我不想要persistence.xml而只想要hibernate.cfg.xml呢?我需要两者都要吗?我只是希望hibernate.cfg.xml具有hibernate扫描带注释实体类的行为。那不可能吗?!换句话说,我认为,对于实体类中的注释,我可以避免使用.hbm.xml映射文件,而仍然使用Hibernate提供的SessionFactory&Session API,并让这些API了解我的实体类。有什么办法最容易做到这一点吗?无论如何,我的问题与上面提到的问题完全不同。我只是自己经历了这一头痛。从看似显而易见的“addPackage”开始。然而,在使用上述代码添加所有类之后,我最终仍然使用addPackage。它读取包级元数据(pacakge info.java),我为自定义类型添加了一些注释。