Hibernate的单向OneToMany、单向ManyToOne

单向OneToMany

一个用户有多张照片,User----->Images是一对多关系,在数据库中Images维护一个外键useid

1、在映射关系的主控方Image这边,我们什么都不做。(为什么说Images是主控方呢?因为外键又Images维护)

2、在映射关系的被控方User这边,需要添加@OneToMany、@JoinColumn注解

public class User{
@OneToMany(cascade=CascadeType.ALL)
@JoinColumn(name="userid")//注释的是另一个表Images指向本表的外键。List<Image> images;public List<Image> getImages()
{        return images;
}public setImages(List<Images> img){  images = img;}}


单向ManyToOne

多个用户属于一个国家,User----->Country是多对一关系,在数据库中User维护一个外键countryid

1、在映射关系的主控方User这边,需要添加@ManyToOne、@JoinColumn注解

public class User{
@OneToMany(cascade=CascadeType.ALL)
@JoinColumn(name="countryid")//注释的是另一个表Images指向本表的外键。Country country;public Country getCountry()
{        return country;
}public setCountry(Country cou){  country = cou;}}

2、在映射关系的被控方Country这边,我们什么都不做

单向关联总结

1、表A需要获取关联表B的数据,那么表A就要在自己的实体定义里面设置相关注解,而表B不需要设置

2、@JoinColumn注解的name属性一定是外键的名字

时间: 2025-01-18 10:53:53

Hibernate的单向OneToMany、单向ManyToOne的相关文章

hibernate之实体@onetomany和@manytoone双向注解(转)

下面是User类: @onetomany @Entity @Table(name="user") public class User implements Serializable{ private static final long serialVersionUID = 6177417450707400228L; @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name="id") priva

hibernate注解之@Onetomany、@Manytoone、@JoinColumn

@Onetomany用于实体类与数据库表映射中少的一方,请看下面的例子. 假设一个用户只有一种角色,用户和角色是onetomany的关系 用户实体 @Entity @Table(name="user") public class UserEntity implements Serializable{ @Id @GenericGenerator(name="generator",strategy="uuid") @GeneratedValue(ge

hibernate之关于一对一单向,双向关联映射

[hibernate]之关于一对一单向,双向关联映射 首先我们来看,Hibernate官方对于一对一单向关联的解释: 基于外键关联的单向一对一关联和单向多对一关联几乎是一样的.唯一的不同就是单向一对一关 联中的外键字段具有唯一性约束. ok,那我们也可以这样理解,一对一其实就是多对一关联的特殊形式,我们知道Hibernate的配置方式有两种,分别是Annotations,XML两种配置方式! Annotations的一对一单向关联映射 人(User)和***号(Card) @Entity @Ta

hibernate之 10.many2many单向

在前文hibernate之5.many2one单向提到多对多关系,表结构设计是基于中间表来实现, 下面以用户与角色(多对多)为例,在Hibernate是如何操作的 表结构设计: 类图: CRUD; Student package com.demo.model; import java.io.UnsupportedEncodingException; import java.util.Set; /**学生信息 * @author wobendiankun *2014-10-19 下午08:54:2

Spring Boot中@OneToMany与@ManyToOne几个需要注意的问题

@OneToMany如果不加@JoinColumn,系统会自动在主从表中增加一个中间表. 主表: @Entity(name = "Post") public class Post {       @Id     @GeneratedValue     private Long id;       private String title;       @OneToMany(         cascade = CascadeType.ALL,          orphanRemova

Hibernate ORM框架——续第二章:Hibernate映射关系:单向关联

一:课堂笔记 **********单表映射*************** 1.只有一个实体类映射一个表 2.有一个实体类+ 一个或者多个值类型,合在一起 映射为一个表 **********多表映射*************** 定义:类有多个映射为多个表 **********数据库层面,如ORM无关************** 2个表之间要建立关系?该如何做?有多少种方法 假定有2个表,分别为A,B 3种关系 a)主键关联:A表的主键对应B表的主键,(一对一的关系) 在数据库种如何建立这种关系?

Hibernate三 关联关系之单向关联

一 分类Hibernate的关联关系可分为:单向关联和双向关联单向关联包括:1->1 1->N N->1 N->N 双向关联包括:1->1 1->N N->N二 单向N->1关联1.程序应该在N的一端的持久化类中增加一个属性,该属性引用1的一端的关联实体对于N->1关联,都需要在N的一端使用@ManyToOne修饰代表关联实体的属性,该注解可以指定以下属性:(1)cascade:指定Hibernate对关联实体采用怎样的级联策略,包括以下五种情况:Ca

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它5.many2one单向

关系数据库表之间的关系: 1 正确 1 1 正确 许多 许多 正确 许多 表间关系设计 基于主键关联 基于外键关联 基于中间表 1 对 1关系实现: 基于主键关联 基于外键关联 基于中间表 1 对 多关系实现: 基于外键关联 基于中间表 多 对 多关系实现: 基于中间表 面向对象实体关系 1 对 1 1 对 多 多 对 多 方向 : 单向.双向 CRUD: many2one配置: <?xml version="1.0"?> <!DOCTYPE hibernate-ma