idea生成hibernate配置文件和映射文件(或者实体类)

首先建立工程,这里我建立的是web工程,表也都建立好了
然后我们首先需要添加在工程添加hibernate模块
在这里插入图片描述
在这里插入图片描述
选择heibernate模块,之前选择了,所以这里已经好了
接下来
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
然后点击确定,等待生成,
生成的结果
在这里插入图片描述
一开始生成的是在这里插入图片描述
但是这样还不行,我们有主键,因为项目选择的是用uuid,这里就要填写生成uuid的策略了
加上

    @GeneratedValue(generator = "uuid")
    @GenericGenerator(name = "uuid",strategy = "uuid")

最终的entity

package com.zhizhuo.entity;

import org.hibernate.annotations.GenericGenerator;

import javax.persistence.*;
import java.util.Objects;

@Entity
@Table(name = "AREA", schema = "WAREHOUSE")
public class AreaEntity {
    private String areaId;
    private String areaCode;
    private String areaName;
    private String depotId;

    @Id
    @GeneratedValue(generator = "uuid")
    @GenericGenerator(name = "uuid",strategy = "uuid")
    @Column(name = "AREAID")
    public String getAreaId() {
        return areaId;
    }

    public void setAreaId(String areaId) {
        this.areaId = areaId;
    }

    @Basic
    @Column(name = "AREACODE")
    public String getAreaCode() {
        return areaCode;
    }

    public void setAreaCode(String areaCode) {
        this.areaCode = areaCode;
    }

    @Basic
    @Column(name = "AREANAME")
    public String getAreaName() {
        return areaName;
    }

    public void setAreaName(String areaName) {
        this.areaName = areaName;
    }

    @Basic
    @Column(name = "DEPOTID")
    public String getDepotId() {
        return depotId;
    }

    public void setDepotId(String depotId) {
        this.depotId = depotId;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (!(o instanceof AreaEntity)) return false;
        AreaEntity that = (AreaEntity) o;
        return Objects.equals(getAreaId(), that.getAreaId()) &&
                Objects.equals(getAreaCode(), that.getAreaCode()) &&
                Objects.equals(getAreaName(), that.getAreaName()) &&
                Objects.equals(getDepotId(), that.getDepotId());
    }

    @Override
    public int hashCode() {
        return Objects.hash(getAreaId(), getAreaCode(), getAreaName(), getDepotId());
    }

    @Override
    public String toString() {
        final StringBuilder sb = new StringBuilder("AreaEntity{");
        sb.append("areaId='").append(areaId).append('\'');
        sb.append(", areaCode='").append(areaCode).append('\'');
        sb.append(", areaName='").append(areaName).append('\'');
        sb.append(", depotId='").append(depotId).append('\'');
        sb.append('}');
        return sb.toString();
    }
}

话不多说,先测试一把,他把我们的uuid和sql语句都打印出来了,测试通过
在这里插入图片描述
其实生成这个已经可以了,因为我们用注解把关系都映射好了,个人感觉用xml配置文件感觉臃肿,还是用注解比较方便,看着也舒服一点,这里只是介绍了生成xml的方法,不过还是贴上代码

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="com.zhizhuo.entity.AreaEntity" table="AREA" schema="WAREHOUSE">
    	<!--后来写的主键生成策略-->
    	        <id name="areaId" column="AREAID">
            <generator class="org.hibernate.id.UUIDHexGenerator"></generator>
        </id>
        <!--工具生成的-->
          <id name="areaId" column="AREAID"/>
        <property name="areaCode" column="AREACODE"></property>
        <property name="areaName" column="AREANAME"></property>
        <property name="depotId" column="DEPOTID"></property>
    </class>
</hibernate-mapping>

好了,到此为止

发布了34 篇原创文章 · 获赞 6 · 访问量 3645

猜你喜欢

转载自blog.csdn.net/qq_35986709/article/details/103484932