Hibernate一对多数据关联。指的是双向一对多数据关联一个盒子Box有多个卡片card
[code="java"]
public class Box
{
@Id
private Integer id;
@OneToMany(fetch=FetchType.LAZY )
@JoinColumn(name="BOX_ID")
@org.hibernate.annotations.Cascade(
value={org.hibernate.annotations.CascadeType.SAVE_UPDATE,
org.hibernate.annotations.CascadeType.DELETE_ORPHAN})
@org.hibernate.annotations.IndexColumn(name="POS_NO", base=0)
private List<Card> cards = new ArrayList<Card>();
....
}
[/code]
[code="java"]
@Entity
@Table(name="CARD")
public class Card
{
@Id
private Integer id;
@ManyToOne
@JoinColumn(name="BOX_ID")
private Box box
@Column(name="POS_NO")
private Integer posno ;
....
}
[/code]
我如此注释映射是否存在问题?
从一个Box中在删除一个Card时报错!!!执行sql不对
[code="java"]
public class Bus
{
public Box delandGet(Integer boxId, Integer delCardid){
Box bx = getHibernateTemplate().get( Box.class, boxId);
List cds = bx.getCards();
Card del = null;
int di = -1;
for(int i=0; i<cds.size() ; i++){
Card c = cds.get(i);
if(c.id.equals(delCardid){
del = c;
di = i;
break;
}
}
if(di != -1){
cds.remove(di);
del.setBox(null);
getHibernateTemplate().delete( del ) ;
}
}
}
[/code]
删除始终不成功报错!!
Hibernate: update CARD set BOX_ID=null, POS_NO=null where BOX_ID=? and id=?
Hibernate: update CARD set BOX_ID=null, POS_NO=null where BOX_ID=? and id=?