情形:两个表,cms_mode是主表,cms_model_field是子表,cms_model_field的model_id字段关联到cms_model的主键。

#
# Source for table cms_model
# DROP TABLE IF EXISTS `cms_model`;
CREATE TABLE `cms_model` (
`model_id` int(11) NOT NULL,
`name` varchar(50) NOT NULL DEFAULT '',
`title` varchar(100) NOT NULL DEFAULT '' COMMENT '名称',
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='CMS模型表'; #
# Source for table cms_model_field
# DROP TABLE IF EXISTS `cms_model_field`;
CREATE TABLE `cms_model_field` (
`field_id` int(11) NOT NULL AUTO_INCREMENT,
`model_id` int(11) NOT NULL DEFAULT '' COMMENT '模型ID',
`name` varchar(50) DEFAULT NULL COMMENT '名称',
`title` varchar(250) NOT NULL DEFAULT '' COMMENT '标题',
`priority` int(11) NOT NULL DEFAULT '' COMMENT '权重',
`data_type` char(1) NOT NULL DEFAULT '' COMMENT '数据类型(S-字符,N-数值,D-日期,T-备注)',
`is_reserved` tinyint(1) NOT NULL DEFAULT '' COMMENT '是否保留',
PRIMARY KEY (`field_id`)
) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='CMS模型字段表';;

CmsModel.java:

@Entity
@Table(name = "cms_model")
@SuppressWarnings("serial")
public class CmsModel implements Serializable
{
@Id
@GeneratedValue
@Column(name = "model_id")
private Integer id; @Column(name = "name")
private String name; @Column(name = "title")
private String title; @OneToMany(mappedBy = "model",
fetch = FetchType.LAZY)
private List<CmsModelField> fieldList;
}

CmsModelField.java:

@Entity
@Table(name = "cms_model_field")
@SuppressWarnings("serial")
public class CmsModelField implements Serializable
{
@Id
@GeneratedValue
@Column(name = "field_id")
private Integer id; @Column(name = "name")
private String name; @Column(name = "title")
private String title; @Column(name = "data_type")
private String dataType; @Column(name = "priority")
private Integer priority; @Column(name = "is_reserved")
private Boolean reserved; @ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "model_id")
private CmsModel model;
}

@OneToMany Default: FetchType.LAZY默认是延迟抓取,不需要左联接。如果是FetchType.EAGER即时抓取,就会是左联接查询。
@ManyToOne Default: FetchType.EAGER默认是即时抓取,做连接。如果fetch=FetchType.LAZY不是左联接,在需要One的时候直接select。

Hibernate注解:一对多外键关联的更多相关文章

  1. 04-hibernate注解-一对一双向外键关联

    一对一双向外键 1,主控方的配置同一对一单向外键关联. 2,@OneToOne(mappedBy="card") //被控方 @OneToOne(mappedBy="ca ...

  2. Hibernate注解:一对一主键关联

    情形:两个表,my_site和my_site_company,通过主键site_id唯一关联.my_site的主键是自动增加,my_site_company的主键依赖于my_site. # # Sou ...

  3. hibernate5(12)注解映射[4]一对一外键关联

    在实际博客站点中,文章内容的数据量非常多,它会影响我们检索文章其他数据的时间,如查询公布时间.标题.类别的等. 这个时候,我们能够尝试将文章内容存在还有一张表中,然后建立起文章--文章内容的一对一映射 ...

  4. hibernate一对一双向外键关联

    一对一双向外键关联:双方都持有对方的外键关联关系. 主控方和一对一单向外键关联的情况是一样的,主要的差异表现为,被空方需要添加: @OneToOne(mappedBy="card" ...

  5. Hibernate一对一单向外键关联

    一.一对一单向外键关联: 一对一单向外键关联主要用到了以下两个注解: 1.OneToOne(cascade=CasecadeTYPE.ALL); cascade=CasecadeTYPE.ALL:表示 ...

  6. hibernate 关系映射之 单向外键关联一对一

    这里的关系指的是对象与对象之间的关系 注解方式单向关联一对一: //这个类描述的husband是一个对应一个wife的 import javax.persistence.Entity; import ...

  7. Hibernate,关系映射的多对一单向关联、多对一双向关联、一对一主键关联、一对一外键关联、多对多关系关联

    2018-11-10  22:27:02开始写 下图内容ORM.Hibernate介绍.hibername.cfg.xml结构: 下图内容hibernate映射文件结构介绍 下图内容hibernate ...

  8. Hibernate 再接触 关系映射 一对一单向外键关联

    对象之间的关系 数据库之间的关系只有外键 注意说关系的时候一定要反面也要说通 CRUD 数据库之间设计 主键关联 单向的外键关联 中间表 一对一单向外键关联 Husband.java package ...

  9. hibernate中指定非外键进行关联

    /** * 上级资源 */ @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "PARENT_ID", reference ...

随机推荐

  1. 使用bind(this)的情况

    1.setInterval().setTimeout()的回调函数,一定要加.bind(this)方法. 原因是:在setInterval()中定义的回调函数,是在同步代码执行完后,随着事件触发来异步 ...

  2. bzoj1346: [Baltic2006]Coin

    Description 有一个国家,流通着N种面值的硬币,其中包括了1分硬币.另外,有一种面值为K分的纸币,它超过了所有硬币的面值. 有一位硬币收藏家,他想收集每一种面值的硬币样本.他家里已经有一些硬 ...

  3. Winfrom DateGridView 实现Button列禁用

    Form窗体如下所示: 实现如下: using System; using System.Collections.Generic; using System.Drawing; using System ...

  4. iwpriv

    AuthMode             {OPEN,SHARED,WEPAUTO,WPAPSK,WPA2PSK,WPANONE} ::Set Authentication Mode EncrypTy ...

  5. Android:单元测试Junit的配置

    在实际开发中,开发android软件的过程需要不断地进行测试.而使用Junit测试框架,侧是正规Android开发的必用技术,在Junit中可以得到组件,可以模拟发送事件和检测程序处理的正确性.... ...

  6. jQurey基础简介

    随着WEB2.0及ajax思想在互联网上的快速发展传播,陆续出现了一些优秀的Js框架,其中比较著名的有Prototype.YUI.jQuery. mootools.Bindows以及国内的JSVM框架 ...

  7. (C/C++) 基础问答题

    1.简述sizeof和strlen的区别 最常考察的题目之一.主要区别如下: 1)sizeof是一个操作符,strlen是库函数. 2)sizeof的参数可以是数据的类型,也可以是变量,而strlen ...

  8. Objective-C语法汇总

    1.方法前的加减号 Objective-C中是没有public与private的概念的,即可以认为全部都是public.减号表示的是一个函数.方法.消息的开始.加号则表示不需要创建一个类的实例,其他类 ...

  9. Spark作业调度

    Spark在任务提交时,主要存在于Driver和Executor的两个节点. (1)Driver的作用: 用于将所有要处理的RDD的操作转化为DAG,并且根据RDD DAG将JBO分割为多个Stage ...

  10. Codeforces Round #364 (Div. 2) Cells Not Under Attack

    Cells Not Under Attack 题意: 给出n*n的地图,有给你m个坐标,是棋子,一个棋子可以把一行一列都攻击到,在根据下面的图,就可以看出让你求阴影(即没有被攻击)的方块个数 题解: ...