首先建立工程,这里我建立的是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>
好了,到此为止