`
onepiece021
  • 浏览: 37462 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Hibenate ManyToOne配置

 
阅读更多

 

hibernate  多对一关联, 在多的一端维护关系, 不生成中间表

 一的端配置@OneToMany,但是不设置cascade属性

@Entity
@Table(name="dorms")
public class Dorm {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
// 宿舍名称
@NotBlank
private String name;
// 住宿人数
@NotNull
private Integer stayCount;   
// 床位
@OneToMany(fetch=FetchType.LAZY)
//@JsonIgnore
private List<Bed> beds; 
}

 

 

多的端配置

@Entity
@Table(name="beds")
public class Bed {
 
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
// 床位
private String number;
// 宿舍
@ManyToOne(cascade = {CascadeType.PERSIST, CascadeType.MERGE})
@JoinColumn(name="dorm_id")
private Dorm dorm;
 
}

维护的时候, 仅仅保存bed信息, dorm自动被保存:
Bed b0 = new Bed();
b0.setNumber("b-1");
b0.setDorm(dorm);
Bed b1 = new Bed();
b1.setNumber("b-2");
b1.setDorm(dorm);
List<Bed> list = Lists.newArrayList(b0, b1);
bedDao.save(list);

后台log
Hibernate: insert into dorms (name, stay_count) values (?, ?)
Hibernate: insert into beds (dorm_id, number) values (?, ?)
Hibernate: insert into beds (dorm_id, number) values (?, ?) 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics