2016-06-15 2 views
0

우선, 나는 최대 절전 모드를 처음 사용합니다. Netbeans에 독립 실행 형 Java 응용 프로그램이 내장되어 있으므로 가능한 한 MVC 모델을 유지하려고합니다. 내 모델 클래스는 가능한 한 데이터베이스 테이블과 열과 비슷합니다. 데이터베이스는 중복성을 피하기 위해 정규화됩니다. 그러나 많은 모델 클래스에서 특정 속성을 사용할 수 있다는 것이 편리하다는 것을 알았습니다. 이 속성은 데이터베이스에서 사용할 수 있지만 대부분의 경우 여러 개의 조인을 수행해야합니다. 따라서 더 쉽게 액세스 할 수 있도록 모델 클래스에이 속성을 추가했습니다.최대 절전 모드에서 임시 속성 사용

예 : Object AObject C와 관련이 Object B와 관계를 갖는다. Object Cproperty X입니다. 관계는 일대 다 다. Object A은 기본 키가 Object B이고 열은 다음과 같습니다. 이제 Object A이 모두 property X에 연결 되길 바랍니다. 대답을 얻으려면 여러 조인을해야합니다. Property XObject A에도 적용되지만 중복성 때문에 데이터베이스에 Object A의 속성으로 사용하고 싶지 않습니다. 이 응용 프로그램에서는 편리하게 액세스 할 수 있도록 Object A 클래스에 property X을 추가합니다.

이제 내 자신의 설계 (서비스) 클래스 대신 Hibernate를 구현하려고하는데,이 속성으로 무엇을해야할지 모르겠다. 내가 POJO에서 'Transient'로 정의했지만이 속성을 어떻게 채울 수 있습니까? 만약 내가 최대 절전 모드로 데이터베이스를 가져 와서 나에게 객체 (Object A)를 반환하게한다면,이 속성을 가지지 않을 것이다. 이 프로퍼티를 가진 여분의 생성자를 가질 필요가 있고 Hibernate의 객체를이 프로퍼티를 포함하는 객체로 변환하고 그것을 요청한 원래의 메소드로 반환 할 필요가 있습니까?

올바른 방법은 무엇입니까? 당신은 최대 절전 모드를 사용하는 경우

답변

1

당신은 아마 당신의 클래스 A에 이런 일이 :

가 B에서
@OneToMany 
private Collection<B> listOfB; 

당신이해야합니다 : 그래서

@OneToMany 
private Collection<C> listOfC; 

을 당신이 당신의 데이터베이스에서 엔티티 A를 얻을 때 당신은 x 일을 얻을 수 있습니다 :

a.getlistOfB(0).getListOfC(0).getX(); 
+0

그것은 집합이지만 같은 생각입니다. 감사 :) – Century

관련 문제