2012-11-12 4 views
1

일부 PK 필드가 CHAR (9)로 정의되고 일부 값은 패딩과 함께 저장되는 Oracle 테이블이 있습니다.eclipselink 사용시 CHAR 트리밍 방지

따라서 키 필드에서 스페이스 패딩을 사용하여 모든 객체를 검색해야합니다. 그러나 EclipseLink가 오브젝트로 데이터를 읽을 때 공백이 제거됩니다. 이것은 ID 값에서 발생하기 때문에 @PostLoad를 사용하여 키를 '수정'하여 공백을 포함 할 수있는 방법이 없습니다.

키 - 값이 잘린 값으로 변경되고 키 - 값에 대한 업데이트/삭제가 누락되어 개체를 삭제/업데이트 할 방법이 없습니다.

영속성 단위가 CHAR 열의 값을 자르지 않도록 어떻게 구성합니까?

public MyCustomizer implements SessionCustomizer { 
    public customize(Session session) { 
    session.getLogin().setShouldTrimStrings(false); 
    } 
} 

그러나 일반적으로

대신 VARCHAR의 CHAR를 사용하여 당신이를 구성 할 SessionCustomizer을 사용할 수 있습니다

답변

1

은 일반적으로 아주 나쁜 생각이다.

+0

괜찮습니다. 고마워요. 나는 CHAR의 사용법을 명시하지 않았고, 일반적으로 나쁜 생각입니다 ... –