现在有一个TbFinancial的VO,存入账出账的记录
class TbFinancial
{
Integer id ,fk_id;
String type ;
Float number; //这里是入账或出账的金额
}
有一个TbSale, 存门市的销售记录
class TbSale
{
Integer id;
TbProduct product;
TbClient client;
Float productAmount;
Float totalPaid;
}
如果从表的关系来说, financial表是通过type和fk_id字段, 来关联到sale表的某条记录, 从而计算出入账或出出账数目的,sql如下:
select fk_id,type from financial f where type='门市销售' left outter join (select * from sales s) where f.fk_id=s.id
如果financial表关联到退货记录表 refund ,sql就是这样的
select fk_id,type from financial f where type='退货记录' left outter join (select * from refund r) where f.fk_id=r.id
这样通过type和fk_id来与其它表连接的话,就保证了financial表的通用性, 但是用sql就容易搞定,如果转成Hibernate对象,遇到两个问题
1 TbFinancial对象的属性中,应该包括其它表的VO, 但这个VO的类型是不确定的,有可能是TbSale, 有可能是TbRefund,这怎么配置呢?
2 TbFinancial对象和其它VO的关系, 不是one-to-many, 也不是many-to-one, 也不是many-to-many,是one-to-one吗?
像这种问题, 请教一下有丰富hibernate经验的朋友,看看怎么解决,谢谢.
分享到:
相关推荐
在Java持久化框架Hibernate中,对象关系模型(Object-Relational Mapping,ORM)是将数据库中的数据映射到Java对象的技术。它使得开发者能够用面向对象的方式来操作数据库,简化了数据库编程的过程。以下是对...
在Java开发中,Hibernate是一个非常流行的ORM(对象关系映射)框架,它允许开发者将数据库操作转换为面向对象的方式,从而简化了数据访问。在实体类之间,Hibernate支持多种关联关系,包括一对一(One-to-One)、一...
在Hibernate框架中,一对一(One-to-One)映射是一种常见的对象关系映射方式,它表示两个实体类之间存在一个唯一的对应关系。例如,一个用户只有一个身份证,或者一辆车只有一个车牌。下面我们将详细讨论如何在...
Hibernate作为一款强大的对象关系映射(ORM)框架,极大地简化了Java应用中的数据库操作,使得开发者能够更专注于业务逻辑而不是繁琐的SQL代码。 在Java开发中,持久化是将应用程序中的对象状态保存到持久存储介质...
Hibernate作为一种强大的ORM(对象关系映射)框架,极大地简化了Java应用与数据库之间的交互。它通过将Java类映射到数据库表,实现了对象持久化,使得开发者可以像操作普通Java对象一样处理数据库中的数据,从而降低...
本文将深入探讨Hibernate中的九种对象关系映射策略,并结合数据库表结构设计进行详细解析。 1. **一对一(One-to-One)**:在数据库中,两个实体之间可能存在一对一的关系,比如一个人只有一个身份证。在Hibernate...
Hibernate的核心设计理念是尽可能地将对象模型与关系模型进行映射,以最小化开发者的工作量。它能够自动处理对象的持久化、查询和事务管理等操作,从而极大地提高了开发效率。 #### 三、JPA与Hibernate的关系 1. *...
Hibernate 是一种Java语言下的对象关系映射解决方案。 它是使用GNU宽通用公共许可证发行的自由、开源的软件。它为面向对象的领域模型到传统的关系型数据库的映射,提供了一个使用方便的框架。Hibernate也是目前Java...
在Java企业级应用开发中,持久化层的处理是一个至关重要的环节,而Hibernate作为一款强大的对象关系映射(ORM)框架,极大地简化了数据库操作。本资料主要探讨的是如何利用Hibernate进行高效且灵活的实体层设计。 ...
本篇将深入探讨Hibernate的四种主要关联关系:一对一(OneToOne)、一对多(OneToMany)、多对一(ManyToOne)和多对多(ManyToMany),并结合实例来阐述每种关系的配置和使用。 1. **一对一关联(OneToOne)** 一...
Hibernate作为Java中广泛使用的对象关系映射(ORM)框架,提供了便捷的方式来管理这种关系。 首先,让我们理解“一对一”关联的概念。在数据库设计中,当两个表之间存在一对一的关系,即每个表的记录最多只能与另一...
Hibernate作为ORM(对象关系映射)框架,通过提供一种面向对象的方式来处理数据库操作,极大地降低了数据访问层的复杂性。 Hibernate的核心特性包括: 1. **对象关系映射**:Hibernate通过XML配置或注解方式,将...
Hibernate 是一个开源的对象关系映射(ORM)框架,它允许Java开发者使用面向对象的方式来操作数据库。在 Hibernate 中,数据库访问接口的设计是至关重要的,因为它提供了与数据库交互的桥梁,简化了传统的 JDBC 编程...
- Hibernate是一个开源的Java平台上的对象关系映射(ORM)框架,它允许开发人员将Java对象与关系数据库之间的映射工作自动化,从而简化了数据库操作。 - ORM的核心理念是将面向对象的编程模型与关系型数据库的数据...
除了传统的SQL查询,Hibernate还提供了一种更面向对象的Criteria查询,允许开发者通过构建Criteria对象来执行数据库查询,更加灵活且易于维护。 5. **HQL(Hibernate Query Language)** Hibernate有自己的查询...
对象关系映射(Object-Relational Mapping,简称ORM)是一种编程技术,它允许开发人员使用面向对象的方式来操作数据库,通过在对象模型和关系数据库之间建立映射,减少了数据库操作的复杂性。ORM的核心思想是将...
在IT行业中,设计模式是一种被广泛认可的解决软件设计中常见问题的最佳实践。它们是经过时间验证的解决方案模板,可以在不同的上下文中重复使用,以提高代码的可读性、可维护性和灵活性。Java设计模式是面向对象编程...