`

关联关系设置外键和没有设置外键

阅读更多
1. Site SiteSchedule  SiteChannel 是一对一的外键关系。
2. 将site和SiteSchedule  SiteChannel 之间的关联关系设置好后,就只要插入site则那两个都插入进去了。
			Set set = new HashSet();
			SiteSchedule siteSchedule = new SiteSchedule();
			siteSchedule.setSite(siteHome.getInstance());
			siteSchedule.setStatus((short)1);
			set.add(siteSchedule);
			siteHome.getInstance().setSiteSchedules(set);
			
			//test function
			Set set2 = new HashSet();
			SiteChannel siteChannel = new SiteChannel();
			siteChannel.setName("410");
			siteChannel.setCreated(new Date());
			siteChannel.setSite(siteHome.getInstance());
			set2.add(siteChannel);
			siteHome.getInstance().setSiteChannels(set2);
3. site.java
public class Site implements java.io.Serializable {
	private Set<SiteChannel> siteChannels = new HashSet<SiteChannel>(0);
	private Set<SiteSchedule> siteSchedules = new HashSet<SiteSchedule>(0);

4. SiteChannel.java
	private Site site;

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "site_id")
	public Site getSite() {
		return this.site;
	}

5. SiteSchedule.java
	private Site site;

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "site_id")
	public Site getSite() {
		return this.site;
	}

6. 数据库的表关系:
   site表里面就是自己的字段。
   site_channel表里面有site_id的字段,而且有外键约束的。如果没有外键约束的话,生成的实体就是private Long site_id;
   site_schedule表里面有site_id的字段,而且有外键约束的。
   有外键约束很关键的哦!!!!
       (1)如果有外键约束就会向上面那样的实体。
           SiteChannel.java中:private Site site;
           site.java中:private Set<SiteChannel> siteChannels = new HashSet<SiteChannel>(0);
       (2)如果没有外键约束关系的话,生成的实体。
           SiteChannel.java中:private Long site_id;         
           site.java中:什么都没有,即没有和SiteChannel发生关系。

7. 只要往site中插入数据即可。则其它副表也插进去了。
	public String persistSite()
	{
		siteHome.getInstance().setCreated(new Date());
		siteHome.getInstance().setModified(new Date());
		siteHome.persist();


8. 删除时,只调用siteHome的remove方法即可,它会帮我们自动删除关联关系的数据,action="#{siteHome.remove}" 。

 

分享到:
评论

相关推荐

    Hibernate 一对一关联映射(主键关联VS唯一外键关联)

    本篇文章将深入探讨两种实现一对一关联的方式:主键关联(Primary Key Join)和唯一外键关联(ForeignKey Join),并结合源码和实际工具进行详细讲解。 一、主键关联(Primary Key Join) 1. 主键关联的概念: ...

    在powerdesigen中建立主外键关联表

    外键(Foreign Key)则是引用另一个表的主键,用于建立两个表之间的关系,确保数据的一致性和参照完整性。 步骤1:创建概念数据模型(Conceptual Data Model,CDM) 打开PowerDesigner,选择“文件”&gt;“新建”&gt;...

    mysql数据库设置外键应该注意的几点

    在MySQL数据库中,外键是实现表间关系的重要机制,它确保了数据的一致性和完整性。设置外键时,有几点需要注意,以确保数据库设计的规范性和高效性。以下是对这些关键点的详细阐述: 1. **外键约束定义**: 外键是...

    数据表的关联关系图-父表与子表的关联关系

    本话题主要讨论的是“数据表的关联关系图”,特别是父表与子表的关联关系,涉及到的核心概念包括主键、外键、父表和子表,以及多对一关联。 首先,我们来理解什么是主键和外键。主键(Primary Key)是表中的一个或...

    Access中如何建立外键关系

    在数据库设计中,外键(Foreign Key)是一种关键机制,用于在两个表之间建立关联,确保数据的一致性和完整性。...正确地设置和管理外键关系对于任何数据库系统都是至关重要的,尤其是在涉及多表交互的复杂应用中。

    外键关联整理脚本

    外键关联是数据库关系模型中的核心要素,保证了数据的一致性和完整性。Grails是一个基于Groovy语言的开源Web应用框架,它提供了一种便捷的方式来创建数据库表结构,包括外键关联。在开发过程中,我们经常需要对...

    大数据工具之HIVE外键及多表关联的介绍.zip

    大数据工具之HIVE外键及多表关联的介绍.zip

    hibernate外键实现一对一单向关联关系源码

    在实际开发中,根据业务需求,你可能还需要考虑如何处理null值,以及在关联关系建立后如何更新和查询数据。 以上就是关于Hibernate外键实现一对一单向关联关系的详细说明。这个知识点涉及到数据库设计、ORM框架的...

    Hibernate关联映射-one to one单向外键关联

    本话题主要探讨的是Hibernate中的一种关联映射方式——一对一(One-to-One)单向外键关联。这种关联模式通常用于两个实体之间存在唯一对应的关系,例如一个用户对应一个唯一的账户。 在Hibernate中,一对一关联可以...

    mysql外键设置

    - **简化查询操作**:例如,当需要查询某个产品的信息以及与之关联的订单信息时,如果设置了外键约束,则可以直接通过外键进行关联查询,提高查询效率。 ##### 2. 添加外键的格式 添加外键的基本语法如下: ```...

    hibernate基于主外键的一对多/多对一关联

    总结起来,Hibernate中的一对多/多对一关联是通过主外键映射来实现的,通过注解和配置文件定义实体间的关联关系,利用懒加载或立即加载策略控制数据获取,同时要注意双向关联的维护和级联操作的设置,以确保数据的...

    hibernate一对一之唯一外键关联(双向关联)

    本篇主要探讨的是Hibernate中的一对一(OneToOne)关系映射,特别是唯一外键关联(UniDirectional and Bidirectional Association)的情况。我们将深入理解这种关联方式的配置、实现以及它在实际应用中的价值。 1. ...

    mysql外键的设置方法

    在关系型数据库设计中,外键(Foreign Key)是一种非常重要的约束机制,用于确保数据的一致性和完整性。通过定义外键,可以实现不同表之间的关联,从而确保引用的完整性。 #### 二、外键的作用与优势 1. **维护...

    hibernate外键实现一对一双向关联关系源码

    在Java的持久化框架Hibernate中,外键是用于在数据库中建立对象之间的关联关系的关键机制。本主题将深入探讨如何使用Hibernate实现一对一双向关联关系,并通过源码解析这一过程。 一对一双向关联关系指的是两个实体...

    Hibernate ORM - 一对一外键关联关系

    综上所述,"Hibernate ORM - 一对一外键关联关系"是一个关于如何在Hibernate中设置和管理一对一关系的专题,涉及源码配置、工具使用和性能优化等多个方面。通过阅读相关的博客文章和实践压缩包中的示例,开发者可以...

    hibernate one-to-one 一对一唯一外键关联映射_单向 and 双向

    在Hibernate中,一对一唯一外键关联映射是指两个实体之间的关联关系,其中一个实体作为外键,另一个实体作为关联目标。这种关联方式可以分为单向关联和双向关联两种。 单向关联是指一个实体作为外键,关联到另一个...

    Hibernate一对一唯一外键关联映射(单向关联)

    唯一外键关联映射时,外键字段在数据库中设置为主键约束,确保每个值都是唯一的,这样就能保证一对一的关系。 ### 2. 创建实体类 假设我们有两个实体类,`Person` 和 `IdCard`,其中 `Person` 拥有一个 `IdCard` ...

    hibernate一对一唯一外键关联映射(单项关联)

    在Java的持久化框架Hibernate中,一对一(One-to-One)关联映射是常见的关系映射方式之一,尤其在处理数据库中的唯一外键关联时。这种映射方式允许在一个实体类中引用另一个实体类的唯一实例,形成一对一的关系。在...

    Hibernate一对一唯一外键关联映射(双向关联)

    在数据库设计中,这种关系通常通过主键和外键的方式实现,其中一方的主键作为另一方的外键,确保了两表间的一对一关系。 二、唯一外键关联映射 在Hibernate中,一对一关联可以通过配置XML映射文件或使用注解来实现...

Global site tag (gtag.js) - Google Analytics