2013-04-16 2 views
4

java.util.UUID 디폴트 매핑의 문제를 해결하기 위해 디폴트 하이버 네이트 매핑을 정의/오버라이드해야한다.Defina는 Hibernate 4의 디폴트 타입 매핑이다.

이 주제와 관련된 여러 의견을 보았습니다 : 여기 Postgresql UUID supported by Hibernate?Postgres + Hibernate + Java UUIDPersisting UUID in PostgreSQL using JPA 및 Hibernate 설명서.

그러나 주석 처리가 더 쉬운 솔루션입니다. 다른 데이터베이스 (예 : H2)로 실행해야하기 때문에 @Type (type = "pg-uuid")와 같은 것은 작동하지 않습니다.

그래서 "org.hibernate.type.PostgresUUIDType을 등록해야합니다. java.util.UUID로 노출 된 모든 속성에 대한 기본 Hibernate 유형 맵핑 "으로 설명되어 있습니다.

슬프게도 설명서를 확인한 후에도 정확히 어떻게하는지 알 수 없습니다.

Hibernate 4.2에서 디폴트 타입 매핑을 덮어 쓰는 방법에 대한 더 자세한 정보를 설명해 주시겠습니까?

감사와 관련,

답변

2

여기에 이루어집니다 내가 찾은 최고의 솔루션과 유사한 환경 변수에 따라 전환하는 사용자 정의 유형을 정의하는 것입니다 :

https://zorq.net/b/2012/04/21/switching-hibernates-uuid-type-mapping-per-database/

그래서 MyUuid 클래스를 정의하고 엔티티의 관련 UUID 필드에 @Type (type = "whatever") 주석을 달고 엔터티 수준에서 새 매핑을 정의했습니다.

@TypeDef (name = "whatever", defaultForType = UUID.c lass, typeClass = MyUuid.class)