Gau*_*tam 9 java hibernate hibernate-mapping
我可以配置Hibernate自动扫描包创建一个SessionFactory从@Entity注释豆?
目前我正在使用
Configuration config = new Configuration() ;
config.addAnnotatedClass(MyEntity.class);
Run Code Online (Sandbox Code Playgroud)
我不想hibernate.cfg.xml用来配置映射.
请注意我想在普通的Java项目中实现这一点,而不使用任何Spring或此类框架.
使用Spring之前已经回答了类似的问题,但我想在不使用Spring或其他框架的情况下实现它.我对一些这样做的简单库开放.
不.即使使用最新的Hibernate 5版本,你也不能说Hibernate扫描包的持久化类.Configuration有方法addPackage(),但它用于读取"包级元数据"(.package-info- files).
你不想使用Spring,那么你能做什么:
使用流利的休眠
您可以使用 来自fluent-hibernate库的EntityScanner(除了库之外,您不需要其他jar)
对于Hibernate 4和Hibernate 5:
Configuration configuration = new Configuration();
EntityScanner.scanPackages("my.com.entities", "my.com.other.entities")
.addTo(configuration);
SessionFactory sessionFactory = configuration.buildSessionFactory();
Run Code Online (Sandbox Code Playgroud)
使用新的Hibernate 5引导API:
List<Class<?>> classes = EntityScanner
.scanPackages("my.com.entities", "my.com.other.entities").result();
MetadataSources metadataSources = new MetadataSources();
for (Class<?> annotatedClass : classes) {
metadataSources.addAnnotatedClass(annotatedClass);
}
SessionFactory sessionFactory = metadataSources.buildMetadata()
.buildSessionFactory();
Run Code Online (Sandbox Code Playgroud)
使用其他库
如果您已经使用了可用于扫描的库,例如Reflection,则有一个测试项目,其中包含使用各种库进行实体扫描的示例:hibernate-scanners-test.
| 归档时间: |
|
| 查看次数: |
2570 次 |
| 最近记录: |