private List<String> cField;
(targetClass=Integer.class) is only needed when your list is of a generic type
그러나 이렇게 만들면 문자열이 필드안에 저장되는 것이 아닌
자기 혼자 String이름으로 된 엔티티를 만들고, 엔티티와스트링이름의 다대다 테이블을 알아서 생성한다.
@Column
@ElementCollection(targetClass=String.class)
private List<String> cField;
예를 들어 내가 위와 같이 cField라고 이름을 붙이고 엔티티안의 필드를 만들었을 때 아래와 같은 오라클 테이블이 형성된다.
c_field가 자체적으로 분리돼서 내가 만든 엔티티와 따로 테이블을 만든다.
따라서 그냥 choice field 테이블을 따로 만드는게 더 보기 좋을 듯 하다는 생각이 드네