LaputaSpring 2007-11-08
最近项目里决定用HibernateAnnotation,现在有一个问题:
现在有三个表:
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")
publicList<OrderTerm>getOrderTerms(){
returnOrderTerms;
}
......
orderTerm.java:
......
@ManyToOne(cascade=CascadeType.ALL,fetch=FetchType.LAZY)
@JoinColumn(name="order_term",referencedColumnname="code")
@OnDelete(action=OnDeleteAction.CASCADE)
publicOrderTermTypegetOrderTermType(){
returnorderTermType;
}
@ManyToOne(cascade=CascadeType.ALL,fetch=FetchType.LAZY)
@JoinColumn(name="order_id",referencedColumnname="uuid")
@OnDelete(action=OnDeleteAction.CASCADE)
publicOrdergetOrder(){
returnorder;
}
.........
orderTermType.java
@OneToMany(targetEntity=OrderTerm.class,cascade=CascadeType.REMOVE,fetch=FetchType.LAZY)
@JoinColumn(name="order_term",referencedColumnname="code")
publicList<OrderTerm>getOrderTerms(){
returnOrderTerms;
}
问题是:
从数据库中load了一个order对象,但是取到的List<OrderTerm>个数为0,也就是说获取不到关联的orderTerm对象,但是从数据库中load了一个orderTermType对象,可以从其中正常获取到关联的orderTerm对象,配置都是一样的,为什么不行呢?试了很多方法都不行,谢谢!