在一对多和多对一双向关联时:
@OneToMany(cascade=ALL)
// @JoinColumn(name="s_class") //如果一端设置了@JoinColumn,那么它的name和多端的@joinColumn的name是一样的。
//但如果设置的是mappedBy的话,那么它的值和多端的getCla的"cla"是一样的。
public Set<Student> getStudents() {
return students;
}
@ManyToOne
@JoinColumn(name="s_class")
public SClass getCla() {
return cla;
}
下面是在一端设置各自属性时输出的SQL语句:
mappedBy:
Hibernate: insert into SClass (name) values (?)
Hibernate: insert into Student (s_class, name) values (?, ?)
Hibernate: insert into Student (s_class, name) values (?, ?)
@JoinColumn:
Hibernate: insert into SClass (name) values (?)
Hibernate: insert into Student (s_class, name) values (?, ?)
Hibernate: insert into Student (s_class, name) values (?, ?)
Hibernate: update Student set s_class=? where id=?
Hibernate: update Student set s_class=? where id=?
我发现mappedBy和@JoinColumn还有一个区别是,在一端设置了@JoinColumn的时候,主控制方在一端,
也就是在一端set多端的时候,数据库会为你保存级联关系(在多端指向一端的外键设置值了)。
SClass c=new SClass();
c.getStudents()。add(s);
c.getStudents()。add(s1);
session.save(c);
这样就行了。但还是建议设置mappedBy让多端设置这种关联比较好。
两者都不用的时候会为OneToMany新建一个关联表SClass_Student.
Hibernate: insert into SClass (name) values (?)
Hibernate: insert into Student (s_class, name) values (?, ?)
Hibernate: insert into Student (s_class, name) values (?, ?)
Hibernate: insert into SClass_Student (SClass_id, students_id) values (?, ?)
Hibernate: insert into SClass_Student (SClass_id, students_id) values (?, ?)
相关推荐
基于HIBERNATE 操作表的关系练习例子
onetomany-hibernate在myeclipse下的使用开发hibernate程序
博文链接:https://llying.iteye.com/blog/220809
对于一对多的双向映射,如果要一对多这一端维护关联关系,你需要删除mappedBy元素并将多对一这端的@JoinColoumn的insertable和updatabel设置为false。这种方案不会得到什么明显的优化,而且还会增加一些附加的UPDATE...
一对多 @OneToMany 注解可定义一对多关联。一对多关联可以是双向的。 双向 规范中多对一端几乎总是双向关联中的主体(owner)端,而一对多的关联注解为 @OneToMany(mappedBy=)
NULL 博文链接:https://tgwall163.iteye.com/blog/1277750
NULL 博文链接:https://fqh1987.iteye.com/blog/791845
NULL 博文链接:https://tianjun309.iteye.com/blog/695332
* @OneToMany(mappedBy="“多端”的属性") * public List<“多端”类> get“多端”列表(){return “多端”列表} * “多端”配置参考@ManyToOne. * 方法二 * “一端”配置 * @OneToMany(mappedBy="“多端”的属性") ...
Hibernate注释大全收藏 声明实体Bean @Entity public class Flight implements Serializable { Long id; @Id public Long getId() { return id; } public void setId(Long id) { this.id = id; } } @Entity ...
o @JoinColumn o @JoinColumns o @JoinTable • L o @Lob • M o @ManyToMany o @ManyToOne o @MapKey o @MappedSuperclass • N o @NamedNativeQueries o @NamedNativeQuery o @NamedQueries o @NamedQuery • O o ...
一对多关系的 Hibernate 注释
“#跟踪狐狸”“#跟踪狐狸”“#跟踪狐狸”“#跟踪狐狸”“#跟踪狐狸”“#跟踪狐狸”“#跟踪狐狸”“#跟踪狐狸”“#跟踪狐狸”“#跟踪狐狸”
一对多Nosql演示与OneToMany关系中的MongoDB的Spring Data演示项目 该项目是我发表的文章的来源。 请以下文章的链接:
hibernate对象三状态及OneToOne&OneToMany&ManyToMany讲解,代码示例,数据库示例!非常全面
@OneToMany(mappedBy 相当于 inverse ) @ManyToOne 结合 @JoinColumn 添加一列外键 @ManyToMany 一方写 mappedBy 放弃外键维护、另一方 @JoinTable 维护中间表 收派标准修添加能实现 html 请求 后台...
详解Hibernate cascade级联属性的CascadeType的用法 cascade(级联) ...cascade表示级联操作,在hibernate配置注解@OneToOne,@OneToMany,@ManyToMany,@ManyToOne中的属性。 例如: @ManyToOne(c
JPA_OneToMany学习教程JPA_OneToMany学习教程JPA_OneToMany学习教程JPA_OneToMany学习教程
Hibernate课程 在这个资料库中,我尝试学习Hibernate 话题 简单的结局 预先映射 @OneToOne @OneToMany @多多 提取类型 懒惰的 渴望的
弹簧过滤器您需要一种无需任何努力即可动态过滤实体的方法吗? 只需将我添加到您的pom.xml 。 您的API将获得功能全面的搜索功能。 您不使用API吗? 没问题,您可能仍然不想弄乱SQL,JPA谓词,... @OneToMany Lis