Hibernate中实体类的设计原则

本文介绍了实体类设计的原则,包括默认构造方法、标识属性等,并提供了一个具体的用户类实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实体类的设计原则:
1.实现一个默认的(无参数的)构造方法
2.提供一个标识属性(identitier property),即对应数据库中的标识字段 标识属性是可选的。可以不用管它,让Hibernate内部来追踪对象的识别。但是并这样做。
3.使用非final的类

代理(proxies)是Hibernate的一个重要的功能,它依赖的条件是,持久化类或者是非final的,或者是实现了一个所有方法都声明为public的接口。 你可以用Hibernate持久化一个没有实现任何接口的final类,但是你不能使用代理来延迟关联加载,这会限制你进行性能优化选择。 应该避免在非final类中声明public final的方法。如果要使用一个有public final方法的类,必须通过设置lazy="false" 来明确的禁用代理


4.为持久化字段声明访问器(acessors)和是否可变的标志(mutators)get/set方法

很多其他ORM工具直接对实例变量进行持久化。在关系数据库schema和类的内部数据结构之间引入间接层会好一些,默认情况下Hibernate持久化JavaBeans风格的属性,认可getFoo,isFoo和setFoo这种形式的方法名。如果需要,可以对某些特定属性实行直接字段访问。 属性不需要声明为public的。Hibernate可以持久化一个有default,protected或private的get/set方法对属性进行持久化。

实例:

public class User { //主键字段 private int id; //属性字段 private String username; private String password; private Date createTime; private Date expireTime; public int getId() { return id; } public void setId(int id) { this.id = id; } //getter 方法 public String getUsername() { return username; } //setter 方法 public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public Date getCreateTime() { return createTime; } public void setCreateTime(Date createTime) { this.createTime = createTime; } public Date getExpireTime() { return expireTime; } public void setExpireTime(Date expireTime) { this.expireTime = expireTime; } }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值