2016-11-21 2 views
2

select를 수행 할 때 jOOQ에서 필드 데이터 유형을 변경할 수 있습니까?jOOQ select 필드 데이터 유형

예를 들어 jOOQ 생성 소스가 있고 필드 X가 있는데 데이터 유형을 변경하고 싶습니다. 변환기를 추가하려고합니다.

예 : I 쉽게 테이블 필드를 대체 할 수

select(PERSON.field(PERSON.ADDRESS.getName(), addressConverter.getDataType())); 

. 테이블 필드에서 필드를 제거한 다음 새 선택 (예)을해야합니다.

답변

0

특정 SELECT 쿼리에 대해 필드를 "변경"하여 새 데이터 형식을 사용하는 가장 간단한 방법은 Field.coerce(DataType)입니다. 예를 들면 : 당신이 PERSON 테이블의 모든 다른 필드를 유지하려면

select(PERSON.ADDRESS.coerce(addressConverter.getDataType())) 
.from(...) 

, 당신은 다음과 같이 진행 수 :

물론
select(Stream.of(PERSON.fields()).map(
    f -> f == PERSON.ADDRESS 
     ? f.coerce(addressConverter.getDataType()) 
     : f).toArray(Field[]::new)) 
.from(...) 

, 당신은이 특정 데이터 타입의 교체를 고려 수 전용 기능.