如何解决如何在Grails 4中集成Java类的Hibernate xml映射?
我正在尝试在我的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创建任何表。休眠配置文件被完全忽略。
解决方法
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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。