도저가있는 속성에 상수 값을 넣는 방법을 아는 사람이 있습니까? dozer의 문서에서 그걸 보지 못했습니다.도저 매핑의 상수
답변
BeanA에서 BeanB로 매핑 할 때마다 Dozer가 항상 BeanB.someField에 상수를 채우 길 원한다면?
이 매핑에 custom converter을 등록 할 수 있습니다.
이벤트 메커니즘을 이용하는 것은 어떻습니까?
그래서 청취자의 mappingFinished()
에 값 설정을 할 청취자를 등록 할 수 있습니다. 자세한 내용은 dozer doc on events에게 문의하십시오. 물론 당신은 if ... instanceof
어떤 종류의 설정 코드를 지켜야 할 것입니다.
'preWritingDestinationValue'에 내 훅을 넣었음에도 불구하고이 값은 이미 매핑되어있는 값을 덮어 쓰지 않고 기본값으로 사용됩니다. – tzrlk
최근 도저 빌드로이 작업을보다 쉽게 수행 할 수 있습니다. 사용자 지정 변환기 과을 모두 지정할 수 있으며 지정된 필드 매핑에 대해 해당 변환기에 대한 매개 변수를 지정할 수 있습니다. 입력 매개 변수를 취하여 그 시간의 100 % 출력 필드에 넣는 단일 'ConstantConverter'를 만드는 것은 간단합니다.
실제로 사용자 지정 변환기에서는 쉽지 않습니다. 먼저 필드를 포함하는 전체 클래스에 대한 변환기를 작성해야합니다 (처음에는 도저 사용 목적을 무효화). 또는 몽타주를 사용하여 변환기를 단일 필드에 연결하는 경우 (원 필드는 하나에 만 존재합니다. 수업의). 어떤 경우에는 좋은 접근 방식이 될 수 있습니다 (객체 구조에 따라 다름). – Lajcik
이것은 ModelMapper 꽤 간단하다
는ModelMapper modelMapper = new ModelMapper();
modelMapper.addMappings(new PropertyMap<SourceClass, DestClass>() {
protected void configure() {
map().setSomeProperty(someConstant);
}
});
이 예는 DestClass.someProperty
-someConstant
매핑합니다.
당신은에서 더 많은 예제와 문서에서 확인할 수 있습니다 : http://modelmapper.org
하나의 가능한 구현은 다음과 같습니다
public class ConstantsCustomConvertor implements ConfigurableCustomConverter{
private String pararamter;
@Override
public Object convert(Object existingDestinationFieldValue, Object sourceFieldValue, Class<?> destinationClass, Class<?> sourceClass) {
return pararamter;
}
@Override
public void setParameter(String parameter) {
this.pararamter = parameter;
}
}
예 :이 사용자 정의 변환기는
<field custom-converter-param="CONTANT_VALUE" custom-converter="org.yourcompany.ConstantsCustomConvertor">
<a>a-class-dummyfieldname</a>
<b>b-class-fieldname</b>
</field>
는 그 B-클래스를 가정 -fieldname은 String 유형입니다.
- 1. 평범하지 않은 도저 매핑
- 2. 사용자 정의 도저 매핑
- 3. 서블릿 매핑의 모호함
- 4. 그림자 매핑의 바이어스 매트릭스
- 5. 객체 관계 매핑의 단점
- 6. 도저 부울 등록 정보 매핑
- 7. Vim Plugin 매핑의 매핑 해제
- 8. 매핑의 사용자 정의 ID 유형
- 9. 도저 : Hibernate PersistentMap은 java.util.HashMap에 매핑되지 않는다.
- 10. 테스트 실행시 매핑의 GeneratedBy 문으로 인한 오류
- 11. Hibernate : HQL에서 매핑의 EAGER를 오버라이드 하시겠습니까?
- 12. 유창한 매핑의 XML 표현을 얻는 방법은 가능합니까?
- 13. GlassFish에서 필터 매핑의 순서를 지정하는 방법은 무엇입니까?
- 14. BST, 해시, 시도 및 매핑의 차이점
- 15. Vim 매핑의 키 반복 및 범위
- 16. 안드로이드/SQLite를위한 객체 - 관계형 매핑의 간단한 대안
- 17. 프롤로그 상수
- 18. 클래스 상수
- 19. 상수 수정
- 20. Pylibnet 상수
- 21. Android (상수)
- 22. 상수 문제
- 23. Kohana의 상수
- 24. 기호 상수
- 25. 계산 상수
- 26. 상수 설명
- 27. 빈 매핑을 위해 도저 대신 사용할 수 있습니까?
- 28. 다른 상수 배열을 포함하는 상수 배열을 선언 할 수 있습니까?
- 29. 자바 스크립트 event.keyCode 상수
- 30. PHP에서 Memcached 상수 설정하기
네, 그게 내가 원하는 것입니다. 사용자 지정 변환기없이 직접 할 수 있는지 궁금합니다. –
고맙습니다. 고맙습니다. –
Dozer를 호출 할 때 유일한 변환 방법은 사용자 지정 변환을 사용하거나 수동으로 수행하는 것입니다. Dozer는 실제로 하나의 bean에서 다른 bean으로의 매핑만을 처리하며 다른 논리를 삽입 할 여지는 많지 않습니다 (의미가 없기 때문에). –