[英]How to integrate hibernate xml mapping of java classes in grails 4?
我正在尝试通过我的 grails 应用程序中的休眠 xml 映射配置来映射 POJO。 这在 grails 2.x 版本中工作正常,但在 grails 4 中它没有采用位于以下位置的休眠配置:
grails-app/conf/hibernate.cfg.xml
这是这样的:
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
'-//Hibernate/Hibernate Configuration DTD 3.0//EN'
'http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd'>
<hibernate-configuration>
<session-factory>
<mapping resource='com.prabin.test.hbm.xml'/>
</session-factory>
</hibernate-configuration>
com.prabin.test.hbm.xml 也与 hibernate.cfg.xml 位于同一位置
com.prabin.test.hbm.xml :
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" "http://hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.prabin.Prabin" table="prabin">
<id name="id" column="prabin_id">
<generator class="identity"/>
</id>
</class>
</hibernate-mapping>
我的 Pojo 位于:
src/main/java/com/prabin/Prabin.java
这是:
package com.prabin;
public class Prabin {
Integer id;
// Getters and Setters
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
}
应用程序没有采用休眠配置文件,因此没有为我的 pojo 创建任何表。 Hibernate 配置文件被完全忽略。
Grails支持团队帮助我完成了这个过程,过程如下:
hibernate 映射文件: hibernate.mapping.xml
应该在/src/main/resources目录中,并在 application.yml 中映射如下:
hibernate:
mappingLocations: classpath:hibernate.mapping.xml
注意:实体文件应该是一个使用@Entity
映射的 groovy 文件并继承接口GormEntity
注释以支持 Groovy 的动态查找器。
例子 :
@Entity
class Employee implements GormEntity<Employee> {
Integer id
String firstName
String lastName
Double salary
}
休眠映射:
<?xml version = "1.0" encoding = "utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name = "com.objectcomputing.example.Employee" table = "EMPLOYEE">
<meta attribute = "class-description">
This class contains the employee detail.
</meta>
<id name = "id" type = "int" column = "id">
<generator class="native"/>
</id>
<property name = "firstName" column = "first_name" type = "string"/>
<property name = "lastName" column = "last_name" type = "string"/>
<property name = "salary" column = "salary" type = "double"/>
</class>
</hibernate-mapping>
这是完整的工作示例: grails-hibernate-xml-config-example
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.