2013-01-15 3 views
3

Ebean에서 중첩 된 객체를 가져 오려고하는데 작동하지 않습니다. 나는 User을 얻는다. 그것은 Addresses입니다. Addresses에는 각각 House이 있습니다. 그러나 House에는 id 만 있습니다. 다른 모든 속성은 null입니다.에 Ebean에 버그가있을 수 있지만 2011 년부터 읽었습니다.이 방법을 만들 수있는 방법이 있습니까?Ebean에서 특정 유형의 중첩 된 객체를 가져올 수 없습니다.

참고 : 주소와 집은 OneToOne 관계입니다.

참고 : @Entity와 @Id를 생략했습니다. 나를 위해

public class User { 
    @OneToMany 
    public List<Address> addresses; 

    public static Finder<String, User> find = new Finder(String.class, User.class); 

    // This is my query 
    public static Event find(Long id) { 
     return find.fetch("addresses").fetch("addresses.house").where().eq("id", id).findUnique(); 
    } 
} 

public class Address { 
    @OneToOne(cascade = CascadeType.ALL, mappedBy = "address") 
    public House house; 
} 

public class House { 
    @OneToOne 
    public Address address; 
    public String somePropertyThatIsNullWhenIUseMyQuery; 
} 
+0

다음을 시도하십시오. http://stackoverflow.com/questions/13011874/why-ebean-returns-null-for-no-reason/13018849#13018849 –

+0

다음을 추가해보십시오. (fetch = FetchType .EAGER) – adis

+1

Ebean이 FetchType을 지원하지 않는다고 생각합니다. – Brian

답변

1
Ebean.find(User.class).fetch("addresses.house", new FetchConfig().query()) 

작품. 여전히 그것을 보지 않으면 u를 사용할 수 있습니다.

Address.getHouse().getSomeProperty() 

때때로 JSON에 개체를 전달하면 f.e. 속성이 null로 표시됨 :(

관련 문제