2010-02-05 6 views
2

Hibernate에서 제네릭을 사용하는 엔티티에 타입 안전 기본 키를 갖는 방법을 찾고 있습니다. 대신이Hibernate/JPA의 타입 안전 기본 키

@Entity 
public class User{ 

@PrimaryKey 
Long id 

} 

내가이 일을 생각하고 있었는데 ...

@Entity 
public class User{ 

@PrimaryKey 
PrimaryKey<User,Long> id 

} 

또는 더욱 타입 추론을

...

어떤 아이디어를하는? 아무도 전에 이것을 시도한 적이 있습니까? PrimaryKey를 임베딩 할 수있게함으로써이 작업을 수행 할 수 있습니까? 그것은 PK 클래스를 사용하고 @EmbeddedId와 기관의 구성원으로 사용할 수는 있지만

@Entity 
public class User extends MyEntity<Long>//Primary key type{ 

@PrimaryKey 
PrimaryKey<User> id; 

} 
+0

임베디드 유형 대신 유형 변환기를 사용할 수 있습니다. 그러나 접근 방법을 테스트하지 않았다면 –

+0

7 년이 지난 것입니다. @ 벤쥬 수 있습니다, 제발, 공유 경험, 당신은 이것을 결국 사용하고 도움이 되었습니까? –

답변

3

, 이것은 일반적으로 모든 JQL 쿼리와 자바 코드에서보다 자세한 정보를 표시하게하는 것입니다 :

select a.addressKey.id from Address a 

또는

AddressKey addressKey = new AddressKey(); 
addressKey.setCountry("USA"); 
addressKey.setId(634); 
Address a = entityManager.find(Address.class, addressKey);  

그래서 나는 개인적으로 전용 (하지 단일 속성, 즉) 진정한 복합 키에 대해이 작업을 사용합니다.

사실, 결국 어쨌든 Long을 처리해야하기 때문에 어떤 문제를 해결하려고하는지 궁금합니다. 단일 속성 typesafe 기본 키의 추가 된 값을 실제로 볼 수 없습니다.

0

엔티티를 식별 할 수있는 형식적인 방법을 찾고 있다면 LazyLoadingProxy를 사용하는 것은 어떻습니까?