2012-12-29 2 views
0

objectdbjpa2을 사용하고 있습니다. 내 사용자가 내 엔티티 필드를 지정하도록하고 싶습니다. 어떻게해야합니까?다른 DB에서 objectDB의 테이블 필드 이름을 동적으로 지정하는 방법

예를 들어 Animal이라는 엔티티가 있는데이 필드의 이름을 지정하는 사용자 인 모든 Strings이 필요합니다. 내가 어떻게 그럴 수 있니? 사용자는 name, owner과 같은 필드 이름을 사용하여 나에게 CSV 파일을 전달할 수 있습니다.

+0

문제를 더 잘 정의하십시오. 클래스가 있고 데이터 저장소의 열을 정의하고 싶습니까? (JPA에서는 열 이름을 지정할 수 있습니다.) 또는 클래스가없고 사용자가 정의한 필드로 클래스를 생성하려고합니까? (JPA와는 관계 없음) – DataNucleus

+0

@DataNucleus 나는 첫 번째 것을 의미한다 : id 필드를 제외하고 필드가없는 클래스 (즉, 열)가있다. 그리고 사용자가 필드/열 이름을 정의한 다음 레코드 (즉, 행)를 테이블에 추가해야합니다. JPA는이를 어떻게 허용합니까? 코드 스 니펫을 표시 할 수 있습니까? – kasavbere

+1

필드가없는 클래스가있는 경우 필드를 추가하는 것은 JPA와 관련이 없습니다. JPA는 필드가있는 기존 클래스에 의존하며 해당 클래스의 객체는 지속됩니다. 필드를 추가하기 위해 클래스 정의를 업데이트 한 다음 JPA의 범위를 벗어나는 것을 유지하는 것에 대해 이야기하는 것 같습니다. – DataNucleus

답변

0

Animal 클래스의 영구 필드로 Map을 사용하여 해당 맵에 동적으로 값을 넣을 수 있습니다.

그러나 이는 일반적인 영구 필드를 사용하는 것보다 효율적이지 않을 수 있습니다.

또는 특수 라이브러리 (예 : cglib, ASM, javassist, arch4j)를 사용하여 동적으로 엔티티 클래스를 생성 할 수도 있습니다.

관련 문제