大家对hibernate 级联的必要性是怎么个看法

如,有两个对象。User,Order(一个人可以有多个订单).那么这个是一对多关系。在建立ORM时:
1  user 实体(类伪码):

@Entity
@Table(name="t_user")
public class User{
  @Id
  @Column(name="id")
  private String id;
  @Column(name="username")
  private String username;
  @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "user")
  private Set<Order> orders;
}

 

2 order 实体(类伪码):

@Entity
@Table(name="t_order")
public class Order{
  @Id
  @Column(name="id")
  private String id;
  @Column(name="name")
  private String name;
  @ManyToOne(cascade = {CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REFRESH},fetch = FetchType.LAZY)
  @JoinColumn(name = "user_id")
  private User user;
}

 

现在在考虑红字部分的必要性:

a  删除第一部分

b  第二部分,不级联,直接映射数据库的字段。@Column(name="user_id") private String userId;

我所知道的它的好处:

1  当获取User对象后,可以直接点取Order对象;

2  对应的级联特性;

对于这两点:

都可以通过显示增加代码量来完成。而且实际上,代码量并不是很多。

可以避免hibernate繁杂的映射关联。

 

我所不清楚的:在性能上面,有没有什么区别(我是觉得没有什么太大性能区别,而且换成显示控制,还可以增加灵活性)?

求教

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值