繁体   English   中英

如何在grails 4中集成java类的hibernate xml映射?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM