关于HibernateDaoSupport查询有多对一关系对象时的问题?

[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时,会报事务关闭的异常。后来将懒加载关掉后,就好了。不知道有没有童鞋也遇到过类似问题。来交流下。


hibernateFilter

org.springframework.orm.hibernate3.support.OpenSessionInViewFilter

</filter

可以调整你的事务控制问题,看你把事务控制在哪一层上面。只要事务没有关闭,使用懒加载没有问题,你懂的。