내 데이터베이스의 열 중 하나는 "3,7,8"
과 같은 비정규 화 된 ID 문자열입니다. db의 레거시 로직을 바꿀 수는 없습니다.JPA에서 외래 키로 ID를 연결 한 문자열 열 값 사용
나는 현재 List<Integer>
에 필드를 변환하는 @Converter
를 사용하고 있지만, 기업이 직접 정의 그래서 나는 두 번째 패스를 할 싶습니다
@Column
@OneToMany
List<ForeignEntity>
에 JPA를 말할 수있는 기본 방법이 있나요 그것을 변환하는 두 번째 패스를 만드시겠습니까?
나는 변환기에서 해결할 수 있지만 데이터 변환기 내부에서 쿼리를 사용하지 않아도되고, 표준 JPA 주석 및 메커니즘의 이점을 얻으려면 더 멋진 방법을 찾고 있습니다. 누군가가 더 나은 솔루션으로 날 지점 수 있다면
사실, 내 외국 기업이지도보다는 다른 아무것도 없다, 그래서 그것을 훨씬 더 복잡 할 수 및
@Column
@OneToMany
List<Map<String,String>> resolvedValues; // Contains {Map[A,B,C]{... , ..., ...}, Map[A,B,C]{... , ..., ...}, ... }
에 직접
id | key | value
----------------
3 | A | ...
3 | B | ...
3 | C | ...
7 | A | ...
7 | B | ...
7 | C | ...
...
해결
나는 정말 greateful!
감사합니다! 하지만 이미 사용하고 있습니다. 내가 말했듯이, 나는 현재 문자열을 목록으로 변환 중입니다. 일반적인 JPA 주석을 사용하여이를 참조 된 엔티티로 디코딩하는 방법입니다. 이는 변환기 코드에서 서브 쿼리를 수행하지 못하도록합니다. –
Whimusical