GWT RequestFactory打开会话查看解决方案

GWT RequestFactory打开会话查看解决方案,gwt,requestfactory,open-session-in-view,Gwt,Requestfactory,Open Session In View,我们有带有子实体的实体(顶部实体),无法使用视图中打开的会话筛选器,因为 我们修改服务层中的实体,但我们不希望这些更改是持久的。 通过调用dao.update,我们只保留我们想要的 另一方面,如果我们不在视图过滤器中使用opensession,那么我们的子实体是不正确的 如果我们将子实体置于顶层实体中,是否有一些变通方法可以强制GWT不对子实体调用findEntity() 例如: public class User { private Long id; private L

我们有带有子实体的实体(顶部实体),无法使用视图中打开的会话筛选器,因为 我们修改服务层中的实体,但我们不希望这些更改是持久的。 通过调用dao.update,我们只保留我们想要的

另一方面,如果我们不在视图过滤器中使用opensession,那么我们的子实体是不正确的

如果我们将子实体置于顶层实体中,是否有一些变通方法可以强制GWT不对子实体调用findEntity()

例如:

    public class User {
    private Long id;
    private Long version;
    private String name;
    Address address;
    /* Getters and Setters */
    public static User findUser(Long id){
        //load from db User with Address    
    }
}
public class Address {
    private Long id;
    private Long version;
    private String name;
    /* Getters and Setters */
    public static Address findAddress(Long id){
        // GWT calls this method although i have allready populated address 
    }
}

即使您使用OSIV,您也会坚持“通过调用dao.update来实现[您]想要的”,所以我不明白为什么您不能使用OSIV.Thomas tnx来获得答案。我们在hibernate中使用spring,如果在hibernate会话中加载并更改了对象,那么这些更改将在不调用dao.update的情况下保持不变!例如,如果我加载用户例如,如果我加载用户并更改其名称,则该名称将被持久化,而无需对该实体调用更新,这对我们来说是不合适的行为。确实如此,但这是Spring/Hibernate问题。我们不能对OSIV或会话有相同的定义(尽管我很确定Hibernate本身是好的,所以我宁愿责怪Spring),为什么在没有OSIV的情况下使用GWT2.4?