前提:
1、hibernate对象(即本身是需要可以存储的)
2、接口实现需要状态
方法总结如下:
1、对原有的对象扩展字段
2、对扩展属性建立新表,把hibernate对象和新表做关联,hibernate对象负责管理属性
3、对扩展属性建立新表,使用外部类管理hibernate对象和扩展表之间的关系,实现接口
方法1示例:
interface Ownable {
public setOwner(id);
}
class ItemEntity implements Ownable {
@OneToOne
private Owner owner;
public setOwner(Integer id) {
owner = dao.getClass(Owner.class, id);
}
}
方法2示例:
interface Ownable {
public setOwner(id);
}
class ItemEntity implements Ownable {
@OneToOne
private RelationEntity relation;
public setOwner(Integer id) {
relation.setOwnerId(id);
relation.setThisId(this.getId());
}
}
class RelationEntity {
private ownerid;
private itemid;
}
class OwnerEntity {
private id;
public buy(Ownable item) {
item.setOwner(this.getId());
}
}
void main() {
OwnerEntity owner;
owner.buy(new Item());
}
方法3示例:
class OwnableService () {
public buy(Owner owner, Item item, RelationEntity relation);
}
上述三种方法应用于场景Owner.hasItem()时:
1. 方法1不能满足
2. 方法2、3可以满足
上述三种方法应用于场景Owner.getItemPrice(item)且item没有price字段时:
1. 方法1不能满足
2. 方法2、3可以满足
上述三种方法应用于场景List<Ownable> Owner.getBuyableItems()时:
1. 方法1、2不能满足
2. 方法3可以满足
方法2和方法3的比较:
1、前者需要修改pojo,后者不需要
2、前者的设计复杂度较高,对hibernate依赖较深
分享到:
相关推荐
Hibernate对象的生命周期 Hibernate对象的生命周期 Hibernate对象的生命周期
hibernate 对象关系映射总结hibernate 对象关系映射总结hibernate 对象关系映射总结
hibernate对象三种状态,有详细的代码介绍三种状态,易理解,有具体代码实现,有详细备注,让你轻松理解三种状态的存在形式
hibernate方法实现
Hibernate对象状态以及各种保存方法的区别
一个关于关于Hibernate对象的状态的描述。
hibernate调用存储过程 hibernate调用存储过程 hibernate调用存储过程 hibernate调用存储过程 hibernate调用存储过程 hibernate调用存储过程 hibernate调用存储过程
Hibernate对象关系映射一对多 很基础等文档
6.3 Hibernate用对象标识符(OID)来区分对象 6.4 Hibernate的内置标识符生成器的用法 6.4.1 increment标识符生成器 6.4.2 identity标识符生成器 6.4.3 sequence标识符生成器 6.4.4 hilo标识符生成器 ...
hibernate调用存储过程的方法,里面有典型的例题,欢迎大家下载
学习后总结了本文档,里面讲述了hibernate中的几种对象关系模型,与大家共享,方便学习
使用Hibernate来实现持久对象
Hibernate操作持久化对象Hibernate操作持久化对象Hibernate操作持久化对象Hibernate操作持久化对象Hibernate操作持久化对象
hibernate本对数据库的操作有些不完美,有必要的时候可以调用存储过程来补足。
Hibernate 实现原理 模拟,通过模拟hibernate的实现原理来加深对hibernate实现原理的理解和使用。
使用hibernate的query调用oracle的存储过程/function,包含例子,源码以及数据库文件
自己做的struts2+hibernate整合实现登录注册功能,
hibernate@注解方式配置实体类时,利用javadoc接口生成数据库表及字段的注释说明,支持oracle、sqlserver、db2、mysql数据库。因用到java\lib\tools.jar,需要将该jar放入工程lib下(或者tomcat\lib下、或加入...
本文主要介绍了对象之间的对应关系,包含对象之间一对一,一对多双向,多对多的关系,另外简单介绍了二级缓存和分页