hibernate多对一单向关联注解方式

多对一单向关联,在多的一方加上一的一方作为外键。在程序里表现为:在多的一方加上一的引用。

小组类Group,用户User:

Group:

package com.oracle.hibernate;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name="t_group")//group是mysql的关键字,换个名
public class Group {

    private int id;
    private String name;

    @Id
    @GeneratedValue
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }

}

User:

package com.oracle.hibernate;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;

@Entity
public class User {

    private int id;
    private String name;
    private Group  group;

    //多对一
    @ManyToOne
    @JoinColumn(name="groupId")//指定外键名称
    public Group getGroup() {
        return group;
    }
    public void setGroup(Group group) {
        this.group = group;
    }
    @Id
    @GeneratedValue
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }

}

生成的表:可以看到在User里加了外键

hibernate建表语句:

create table User (
id integer not null auto_increment,
name varchar(255),
groupId integer,
primary key (id)
)

create table t_group (
id integer not null auto_increment,
name varchar(255),
primary key (id)
)

在User里加了外键:

alter table User
add index FK285FEB744AEC3A (groupId),
add constraint FK285FEB744AEC3A
foreign key (groupId)
references t_group (id)

时间: 2024-10-16 14:43:01

hibernate多对一单向关联注解方式的相关文章

Java知识点11 Hibernate多对多单向关联(Annotation+XML实现)

1.Annotation 注解版 1.1.应用场景(Student-Teacher):当学生知道有哪些老师教,但是老师不知道自己教哪些学生时,可用单向关联的多对多模式 1.2.创建Teacher类和Student类 1 package com.shore.model; 2 3 import javax.persistence.Entity; 4 import javax.persistence.GeneratedValue; 5 import javax.persistence.Generati

hibernate多对一单向关联

注解: 使用注解:

Hibernate中用注解配置一对多双向关联和多对一单向关联

Hibernate中用注解配置一对多双向关联和多对一单向关联 Hibernate提供了Hibernate Annotations扩展包,使用注解完成映射.在Hibernate3.3之前,需单独下载注解开发包 配置持久化类 配置关联关系 下面我们先从多对一单向关联关系讲起,多对一单向关联就是在多的一方植入一的一方的主键作为外键,下面我们先进行初始配置, 在配置的过程中我们会遇到一个问题  就是无论用load还是get都不会出现延迟加载,那么我们应该如何设置为要延迟加载,这样做的好处是可以在用的时候

Hibernate之关于多对多单向关联映射

[Hibernate]之关于多对多单向关联映射 老师和学生,最典型的多对多关联, Teacher和Student.所谓单向意思就是说.老师知道自己的教的是哪些学生而学生不知道是哪些老师教. 也能够这么说,在查询的时候,通过老师能够级联查询出学生,可是通过学生不能够级联查询出老师. 而多对多最麻烦的是怎么自己定义我们中间表的,表名和列名,这个是重要的! Annotations配置 @Entity @Table(name="t_teacher") publicclass Teacher {

hibernate之多对一单向关联

一个工作组(Group)里可以有多个用户(User),一个User只属于一个Group,这是典型的多对一的关系.在多对一的关系中正确的数据库设计是在多的这方(在这里是User这方)加一个Group的外键.如果数据库设计的与之相反就会产生冗余,请看下面这个例子: 友情提示:这是错误的设计方法: GroupId GroupName UserId 1 Group_1 1 1 Group_1 2 UserId UserName 1 moluo 2 xingzhe 这样在一的这方(也就是Group这方)设

hibernate之关于多对一单向关联映射

[Hibernate]之关于多对一单向关联映射 在项目的开发中多对一的单向关联映射是最常见的,关联映射!这个着重详细讲解一下! 例如,我们现在一个组(Group)和人(Person) (Person表) id name 1 张三 2 李四 (Group表) id name p_id 1 财务组 1 2 财务组 2 由上表我们发现,是不是出现数据的重复?财务组在重复! 所以,在多对一的单向映射中,我们通常是在多的一方加上外键来关联少的一方. 那么在这个关系中(Group)是少的一方,(Person

hibernate的映射之三(多对多单向关联)

Many-to-Many 多对多的映射可以使用一组Java集合不包含任何重复的元素来实现.我们已经看到了Hibernate如何设置映射集合. 集(SET)被映射到与映射表中<set>元素,并以java.util.HashSet初始化.您可以使用Set集合在类中时,集合不需要重复的元素. 在现实生活中多对多的例子挺多的. 例如:学生与老师,订单与商品等 下面我就以员工和项目来做例子,一个员工可以做多个项目,一个项目可以被多个员工做. 1.准备JavaBean 项目·实体·类 public cla

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

2018-11-10  22:27:02开始写 下图内容ORM.Hibernate介绍.hibername.cfg.xml结构: 下图内容hibernate映射文件结构介绍 下图内容hibernate映射文件中主键自增规则.Hibernate实例状态(瞬时状态.持久化状态.托管状态).Hibernate初始化类获取session等方法 下图内容保存数据过程 下面内容保存数据顺序.查询数据方法 get().load()和延迟加载.删除数据 下图内容删除对象顺序.修改数据顺序 下面内容关联关系映射.

【Hibernate步步为营】--单向关联一对一映射(一)

上篇文章对多对一的关联映射做了详细的分析,它在实现上可以有两种方式,并且这两种方式实现也很简单,关键是标签<many-to-one>的使用,它分别指明了多端和一端的映射关系,这种映射关系既是对象模型中的聚合关系.接下来继续讨论关联映射. 一.唯一外键 唯一外键说的是数据库表中的每一行的外键唯一对应着另一张表中的主键,也就是说一个表的主键作为另一张表的外键,并且它们之间的关系是唯一的,这种反应到关系模型中如下图所示: 上图的两个实体表,分别为人和身份证,很明显的一个人对应着一个身份证.身份证作为