`

自己的摸索 Hibernate使用

 
阅读更多

 

1.将所有的关联关系设计成manytoone形式。

 

在学习数据库的时候,接触过的关联关系有:多对一(一对多)、一对一;在RDB里,并没有多对多的关系,这些都是些常理。

 

将所有关联关系设计成manytoone,当然会遇到一些问题。

(讨论内容的均通过注解实现,配置文件方式请参照hibernate相关文档)

 

一对一:关系的维护交由一方维护(比如A)。在维护方(A)对被维护方(B)引用的get方法(getB())上加上:

 

@ManyToOne
@JoinColumn(nullable=false,unique=true)

 注解达到onetoone的效果,如果需要双向关联,则在被维护方(B)对维护方(A)引用的get方法()上加上:

 

@OneToOne(mappedBy="a")

 mappedBy="a"表示关系维护交由A。

 

多对多:当然可以对两个model通过多对多的设置来达到需求,hibernate自然也会为我们创建中间表(通过配置,甚至可以在中间表中插入其它字段),不过,增加一个model的形式是让我更感便利的方式。这样做的时候当然会遇到一些新的问题(所幸,这些问题并非不容易解决,下面的描述将有助于解决这些问题)。

 

2.逻辑主键替代业务主键

在多对多拆分成两个多对一关系时,拆分出来的中间model必然会面对多个字段组合唯一约束性的问题,这个时候,有两个方案可供选择,一种是通过联合主键的方式实现(如果这样,我们又要多写一个生成主键的类了),这样,还是业务主键;另一种,还是以id作为逻辑主键,通过在model配置

 

@Table(uniqueConstraints= @UniqueConstraint(
        name="param1_param2", 
        columnNames={"param1", "param2"} ) )

 来对多个字段(这里是param1和param2两个字段)的唯一性进行约束。

 

暂时停中。。。。

 

没什么经验...

 

 

分享到:
评论

相关推荐

    Struts_Spring_Hibernate整合教程

    4. **对象关系映射**:理解Hibernate的ORM机制,实体类和数据库表的映射,以及HQL(Hibernate Query Language)的使用。 5. **事务管理**:学习Spring的声明式事务管理,如何在Service层控制事务边界。 6. **整合...

    Hibernate查询映射试验

    在这个“Hibernate查询映射试验”项目中,你可能会遇到如何配置SessionFactory、如何创建和执行HQL/Criteria查询、如何处理关联映射(如一对一、一对多、多对多)、如何使用事务管理等实践环节。理解并熟练掌握这些...

    hibernate 技术手册

    Hibernate 是一款强大的Java持久化框架,它为Java开发者提供了一种在对象关系映射(ORM)领域的解决方案,使得开发者能够方便地将业务对象与数据库...在实践中不断摸索,你将能更好地驾驭Hibernate这一强大的ORM工具。

    注解 Struts2+Spring3+Hibernate3框架整合AJAX+JQuery实现登录、注册以及验证码和验证注册用户信息

    代码简单易懂且肯定正确,有丰富的注释肯定能看明白,本来不想设资源分,但是看到凡是上传代码的都设了资源分,不想破坏规则,2分应该很低了,希望对初学者有帮助,我也是在不断摸索中前进,也希望可以在CSDN这个...

    struts1小案例

    Hibernate允许开发者使用Java对象来操作数据库,消除了传统JDBC编码的繁琐。在这个小案例中,我们可能需要创建Hibernate的配置文件(hibernate.cfg.xml),定义数据源、实体类映射等。实体类是与数据库表对应的Java...

    springMVC+hibernate+oracle 采用注释开发 用户单点登录系统

    接触java一个多月了,这两天实践了一下ssh框架是怎么搭建的,借鉴了一些网上的博文,但在实际过程中,遇到很多问题,,苦于没有源代码进行比较学习, 一度很痛苦,不知道错误在哪里,经过几天的摸索探究,最终实现了...

    java ssh练习题 有题目要求

    "产品"(product)可能是数据库中的一个实体,对应的Java类可能包含@Entity注解,使用Hibernate的注解配置或者hbm.xml文件进行映射。 4. **JSP**:JSP(JavaServer Pages)是用于创建动态Web页面的技术,它将Java...

    SSH框架搭建demo

    SSH框架,全称为Spring、Struts和Hibernate的组合,是Java Web开发中广泛使用的三大开源框架。这个"SSH框架搭建demo"旨在为初学者提供一个实践平台,通过亲手操作理解这三个框架如何协同工作,实现一个完整的Web应用...

    ssh框架做的简单应用事例

    3. **Hibernate框架**:Hibernate是一个对象关系映射(ORM)工具,它允许开发者使用Java对象来操作数据库。在登录场景下,Hibernate可能用于与数据库交互,查询用户信息。通过编写Hibernate的映射文件(hbm.xml)和...

    Spring2.0技术手册

    它通过实际完成一个完整的Spring项目示例,展示了与Spring相关API的使用技巧,能够显著减少每一位入门者摸索Spring API的时间。本书是学习Spring Web开发的最佳读物,它能让读者在示例学习中获得显著提高。\r\n ...

    ssh集成笔记

    ### SSH集成笔记 #### 一、概述 SSH(Struts + Spring + Hibernate)是一种流行的Java Web...在实践中,不断摸索和调整是理解和掌握SSH集成的关键。通过以上介绍的步骤和细节,希望读者能够更好地理解和实现SSH集成。

    Java程序员(软件工程师)必读

    这份“Java程序员(软件工程师)必读”压缩包文件,无疑是前辈们经验的结晶,旨在帮助新手快速掌握核心技能,避免在学习和实践中陷入无尽的摸索。以下是根据标题、描述以及压缩包中的“JAVA程序员必读基础篇”这一...

    OrFlying For VB.NET

    由此,也走上了长达六年的摸索之路。 实际编写中发现,大量的类的创建过程都是在根据一个模板拷贝粘贴。于是开发一个类生成工具的想法自然而然的就出现了。开始的方法是通过Rose的VB代码生成模板创建,建立VB...

    OrFlying For VB6

    由此,也走上了长达六年的摸索之路。 实际编写中发现,大量的类的创建过程都是在根据一个模板拷贝粘贴。于是开发一个类生成工具的想法自然而然的就出现了。开始的方法是通过Rose的VB代码生成模板创建,建立VB...

Global site tag (gtag.js) - Google Analytics