您的位置:首页 > 编程语言 > Java开发

使用MyEclipse自动生成hibernate映射文件和实体类(My SQL数据库)

2017-05-03 20:16 190 查看

一、准备

1.PowerDeigner中按F4检查数据库设计是否有误

2.选择项目右键选择属性选择Preview复制MySql建表语句到MySQL Workbench中执行。



注意,不要使用现有的数据库,要在MySQL Workbench中新建数据库,防止出错。

二、使用MyEclipse生成实体类

1.安装Hibernate

Myeclipse如何自动创建hibernate_百度经验

http://jingyan.baidu.com/article/456c463b99f4370a583144a8.html

说明:生成实体类时可选择Add Hibernate mapping选项,即将mapping放到实体类中。



三、其它注意事项

1.entity类中去掉catalog = “xxx” ,hibernate.cfg.xml中配置了数据库属性,hibernate会先找catalog中指定的数据库,如果没有会去前面那个配置文件去找,所以去掉就好。

* JcwxEbooks entity. @author MyEclipse Persistence Tools
*/
@Entity
@Table(name = "jcwx_ebooks", catalog = "xhgc_jcwx")
public class JcwxEbooks implements java.io.Serializable {


参考:

hibernate-mapping中catalog=“test”,为什么去掉catalog这个属性后,查询数据库是还是from test.表名?_百度知道 https://zhidao.baidu.com/question/1767905158360197860.html

2.存在多对一关系的实体类中的get属性上面加上@JsonIgore。

作用是json序列化时将java bean中的一些属性忽略掉,序列化和反序列化都受影响。

@JsonIgnore
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "gcBookComment")
public List<RefBookTag> getRefBookTags() {
return this.refBookTags;
}


3.去掉entity类中的length,如果以后要修改字段的长度则只需要修改数据库就行了,免去还要去修改entity。

@Column(name = "url", length = 200)
public String getUrl() {
return this.url;
}


参考:

Hibernate-类映射文件中常用属性的了解(unique,length) - Henry_YQH的专栏 - 博客频道 - CSDN.NET http://blog.csdn.net/henry_yqh/article/details/8607691

4.将@ManyToOne字段中的fetch=FetchType.LAZY改成fetch=FetchType.EAGER

两者的区别:

1、FetchType.LAZY:懒加载,加载一个实体时,定义懒加载的属性不会马上从数据库中加载。

2、FetchType.EAGER:急加载,加载一个实体时,定义急加载的属性会立即从数据库中加载。

@JsonIgnore
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "user_id")
public GcUser getGcUser() {
return this.gcUser;
}


参考:

Spring,FetchType.LAZY和FetchType.EAGER什么区别?_百度知道

https://zhidao.baidu.com/question/232426484.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  myeclipse hibernate