Hibernate Annotation的奇怪问题????

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对象,配置都是一样的,为什么不行呢?试了很多方法都不行,谢谢!

相关推荐