最近项目里决定用Hibernate Annotation,现在有一个问题:
现在有三个表:
order(uuid,name,....)
orderTerm(uuid,order_id,order_term,.....)
orderTermType(uuid,code,descr,......)
order表和orderTerm表是一对多的关系(order表中的uuid对应orderTerm表中的外键order_id) , orderTermType表和orderTerm表也是一对多的关系(orderTermType表中的code对应orderTerm表中的外键order_term)
现如下映射:
order.java :
......
@OneToMany(targetEntity = Order.class, cascade = CascadeType.REMOVE, fetch = FetchType.LAZY)
@JoinColumn(name = "order_id",referencedColumnName="uuid")
public List<OrderTerm> getOrderTerms() {
return OrderTerms;
}
......
orderTerm.java :
......
@ManyToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinColumn(name = "order_term", referencedColumnName = "code")
@OnDelete(action = OnDeleteAction.CASCADE)
public OrderTermType getOrderTermType() {
return orderTermType;
}
@ManyToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinColumn(name = "order_id", referencedColumnName = "uuid")
@OnDelete(action = OnDeleteAction.CASCADE)
public Order getOrder() {
return order;
}
.........
orderTermType.java
@OneToMany(targetEntity = OrderTerm.class, cascade = CascadeType.REM OVE, fetch = FetchType.LAZY)
@JoinColumn(name = "order_term",referencedColumnName="code")
public List<OrderTerm> getOrderTerms() {
return OrderTerms;
}
问题是:
从数据库中load了一个order对象,但是取到的List<OrderTerm>个数为0,也就是说获取不到关联的 orderTerm对象, 但是从数据库中load了一个orderTermType对象,可以从其中正常获取到关联的 orderTerm对象 , 配置都是一样的,为什么不行呢? 试了很多方法都不行,谢谢!
现在有三个表:
order(uuid,name,....)
orderTerm(uuid,order_id,order_term,.....)
orderTermType(uuid,code,descr,......)
order表和orderTerm表是一对多的关系(order表中的uuid对应orderTerm表中的外键order_id) , orderTermType表和orderTerm表也是一对多的关系(orderTermType表中的code对应orderTerm表中的外键order_term)
现如下映射:
order.java :
......
@OneToMany(targetEntity = Order.class, cascade = CascadeType.REMOVE, fetch = FetchType.LAZY)
@JoinColumn(name = "order_id",referencedColumnName="uuid")
public List<OrderTerm> getOrderTerms() {
return OrderTerms;
}
......
orderTerm.java :
......
@ManyToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinColumn(name = "order_term", referencedColumnName = "code")
@OnDelete(action = OnDeleteAction.CASCADE)
public OrderTermType getOrderTermType() {
return orderTermType;
}
@ManyToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinColumn(name = "order_id", referencedColumnName = "uuid")
@OnDelete(action = OnDeleteAction.CASCADE)
public Order getOrder() {
return order;
}
.........
orderTermType.java
@OneToMany(targetEntity = OrderTerm.class, cascade = CascadeType.REM OVE, fetch = FetchType.LAZY)
@JoinColumn(name = "order_term",referencedColumnName="code")
public List<OrderTerm> getOrderTerms() {
return OrderTerms;
}
问题是:
从数据库中load了一个order对象,但是取到的List<OrderTerm>个数为0,也就是说获取不到关联的 orderTerm对象, 但是从数据库中load了一个orderTermType对象,可以从其中正常获取到关联的 orderTerm对象 , 配置都是一样的,为什么不行呢? 试了很多方法都不行,谢谢!