2016-12-12 1 views
0

Hibernate 5.0을 사용하여 Postgres에서 Java UUID를 바이트 배열로 저장하는 방법은 무엇입니까?
모델 : Postgres + Hibernate : Hibernate 5.0으로 업그레이드 한 후 UUID를 BYTEA로 매핑하지 못한다.

@Entity 
@Table(name = "childs") 
public class Child { 
    ... 
    @Type(type = "pg-uuid") 
    private UUID parentId; 
    ... 
} 

테이블 : 최대 절전 모드 4.3으로 잘 작동하는 데 사용

CREATE TABLE childs (
    ... 
    parent_id BYTEA, 
    ... 
); 

다. 내가 PostgresUUIDType의 소스 코드를 확인하고 최대 절전 모드의 새로운 버전에 다음이 추가 발견

PSQLException: ERROR: column "parent_id" is of type bytea but expression is of type uuid 

:

@Override 
protected boolean registerUnderJavaType() { 
    // register this type under UUID when it is added to the basic type registry 
    return true; 
} 

I 5.0를 최대 절전 모드로 업그레이드 한 후 나는 다음과 같은 오류를 받고 있어요 모델의 필드 유형을 @Type(type = "uuid-binary")으로 변경하려고 시도했지만 여전히 동일한 오류가 발생했습니다. (열 유형을 UUID으로 변경하는 것은 옵션이 아닙니다.)
도움이 될만한 의견이 있습니다. 감사.

@TypeDef(name = "pg-uuid-binary", defaultForType = UUID.class, typeClass = UUIDBinaryType.class) 

그리고 @Type(type = "pg-uuid-binary")ph-uuid-binary와 도메인의 필드에 주석 :

답변

0

나는이 문제를 해결하는 것으로 가장 간단한 방법은하여 domain 패키지에 package-info.java에 다음 (또는이 필요한 것 곳) 추가하는 것입니다.

내게 정확히 uuid-binary 정의와 같지만 어떻게 든 작동하지 않습니다.

관련 문제