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}" 。
分享到:
相关推荐
本篇文章将深入探讨两种实现一对一关联的方式:主键关联(Primary Key Join)和唯一外键关联(ForeignKey Join),并结合源码和实际工具进行详细讲解。 一、主键关联(Primary Key Join) 1. 主键关联的概念: ...
外键(Foreign Key)则是引用另一个表的主键,用于建立两个表之间的关系,确保数据的一致性和参照完整性。 步骤1:创建概念数据模型(Conceptual Data Model,CDM) 打开PowerDesigner,选择“文件”>“新建”>...
在MySQL数据库中,外键是实现表间关系的重要机制,它确保了数据的一致性和完整性。设置外键时,有几点需要注意,以确保数据库设计的规范性和高效性。以下是对这些关键点的详细阐述: 1. **外键约束定义**: 外键是...
本话题主要讨论的是“数据表的关联关系图”,特别是父表与子表的关联关系,涉及到的核心概念包括主键、外键、父表和子表,以及多对一关联。 首先,我们来理解什么是主键和外键。主键(Primary Key)是表中的一个或...
在数据库设计中,外键(Foreign Key)是一种关键机制,用于在两个表之间建立关联,确保数据的一致性和完整性。...正确地设置和管理外键关系对于任何数据库系统都是至关重要的,尤其是在涉及多表交互的复杂应用中。
外键关联是数据库关系模型中的核心要素,保证了数据的一致性和完整性。Grails是一个基于Groovy语言的开源Web应用框架,它提供了一种便捷的方式来创建数据库表结构,包括外键关联。在开发过程中,我们经常需要对...
大数据工具之HIVE外键及多表关联的介绍.zip
在实际开发中,根据业务需求,你可能还需要考虑如何处理null值,以及在关联关系建立后如何更新和查询数据。 以上就是关于Hibernate外键实现一对一单向关联关系的详细说明。这个知识点涉及到数据库设计、ORM框架的...
本话题主要探讨的是Hibernate中的一种关联映射方式——一对一(One-to-One)单向外键关联。这种关联模式通常用于两个实体之间存在唯一对应的关系,例如一个用户对应一个唯一的账户。 在Hibernate中,一对一关联可以...
- **简化查询操作**:例如,当需要查询某个产品的信息以及与之关联的订单信息时,如果设置了外键约束,则可以直接通过外键进行关联查询,提高查询效率。 ##### 2. 添加外键的格式 添加外键的基本语法如下: ```...
总结起来,Hibernate中的一对多/多对一关联是通过主外键映射来实现的,通过注解和配置文件定义实体间的关联关系,利用懒加载或立即加载策略控制数据获取,同时要注意双向关联的维护和级联操作的设置,以确保数据的...
本篇主要探讨的是Hibernate中的一对一(OneToOne)关系映射,特别是唯一外键关联(UniDirectional and Bidirectional Association)的情况。我们将深入理解这种关联方式的配置、实现以及它在实际应用中的价值。 1. ...
在关系型数据库设计中,外键(Foreign Key)是一种非常重要的约束机制,用于确保数据的一致性和完整性。通过定义外键,可以实现不同表之间的关联,从而确保引用的完整性。 #### 二、外键的作用与优势 1. **维护...
在Java的持久化框架Hibernate中,外键是用于在数据库中建立对象之间的关联关系的关键机制。本主题将深入探讨如何使用Hibernate实现一对一双向关联关系,并通过源码解析这一过程。 一对一双向关联关系指的是两个实体...
综上所述,"Hibernate ORM - 一对一外键关联关系"是一个关于如何在Hibernate中设置和管理一对一关系的专题,涉及源码配置、工具使用和性能优化等多个方面。通过阅读相关的博客文章和实践压缩包中的示例,开发者可以...
在Hibernate中,一对一唯一外键关联映射是指两个实体之间的关联关系,其中一个实体作为外键,另一个实体作为关联目标。这种关联方式可以分为单向关联和双向关联两种。 单向关联是指一个实体作为外键,关联到另一个...
唯一外键关联映射时,外键字段在数据库中设置为主键约束,确保每个值都是唯一的,这样就能保证一对一的关系。 ### 2. 创建实体类 假设我们有两个实体类,`Person` 和 `IdCard`,其中 `Person` 拥有一个 `IdCard` ...
hql查询多个实体类,类之间有外键关系,但是没有外键关联
在Java的持久化框架Hibernate中,一对一(One-to-One)关联映射是常见的关系映射方式之一,尤其在处理数据库中的唯一外键关联时。这种映射方式允许在一个实体类中引用另一个实体类的唯一实例,形成一对一的关系。在...