[code="java"]
@Entity
@Table(name="sales_order")
public class SalesOrder implements Serializable{
private static final long serialVersionUID = 5759107473482682684L;
private Long id;
private String salesOrderId;
List<SalesOrderItem> items = new ArrayList<SalesOrderItem>();
private double point;
@Id
@Column
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
@OneToMany(targetEntity = SalesOrderItem.class, fetch=FetchType.EAGER, cascade = {CascadeType.ALL}, mappedBy = "salesOrder")
public List<SalesOrderItem> getItems() {
return items;
}
public void setItems(List<SalesOrderItem> items) {
this.items = items;
}
@Column(name = "sales_order_id")
public String getSalesOrderId() {
return salesOrderId;
}
public void setSalesOrderId(String salesOrderId) {
this.salesOrderId = salesOrderId;
}
@Column(name = "point", nullable=true)
public double getPoint() {
return point;
}
public void setPoint(double point) {
this.point = point;
}
}
[/code]
[code="java"]
@Entity
@Table(name="sales_order_item")
public class SalesOrderItem implements Serializable {
private static final long serialVersionUID = 2884305648443041227L;
private Long id;
private SalesOrder salesOrder;
private double amount;
private double rate;
@Id
@Column
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
@ManyToOne(targetEntity = SalesOrder.class, fetch=FetchType.EAGER)
@JoinColumn(name="sales_order_id")
public SalesOrder getSalesOrder() {
return salesOrder;
}
public void setSalesOrder(SalesOrder salesOrder) {
this.salesOrder = salesOrder;
}
@Column(name = "amount")
public double getAmount() {
return amount;
}
public void setAmount(double amount) {
this.amount = amount;
}
@Column(name = "rate")
public double getRate() {
return rate;
}
public void setRate(double rate) {
this.rate = rate;
}
}
[/code]
HibernateDaoSupport在查询出salesorder时,貌似在查询完毕后就会将事务关闭。当要用到getItems()取出salesorderitem时,会报事务关闭的异常。后来将懒加载关掉后,就好了。不知道有没有童鞋也遇到过类似问题。来交流下。