열 이름 중복 :JPA : @ElementCollection 및 InheritanceType.TABLE_PER_CLASS -> 나는 다음과 같은 시나리오를 만든
@javax.persistence.Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public class MyEntity implements Serializable{
@Id
@GeneratedValue
protected Long id;
...
@ElementCollection
@CollectionTable(name="ENTITY_PARAMS")
@MapKeyColumn (name = "ENTITY_KEY")
@Column(name = "ENTITY_VALUE")
protected Map<String, String> parameters;
...
}
뿐만 아니라 :
@javax.persistence.Entity
public class Sensor extends MyEntity{
@Id
@GeneratedValue
protected Long id;
...
// so here "protected Map<String, String> parameters;" is inherited !!!!
...
}
그래서이 예제를 실행을, 어떤 테이블이 없습니다 생성 및 나는 다음과 같은 메시지가 나타납니다 :
WARNUNG: Got SQLException executing statement "CREATE TABLE ENTITY_PARAMS (Entity_ID BIGINT NOT NULL, ENTITY_VALUE VARCHAR(255), ENTITY_KEY VARCHAR(255), Sensor_ID BIGINT NOT NULL, ENTITY_VALUE VARCHAR(255))": com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Duplicate column name 'ENTITY_VALUE'
나는 또한 Sens 또는 클래스 ...
@AttributeOverrides({
@AttributeOverride(name = "ENTITY_KEY", column = @Column(name = "SENSOR_KEY")),
@AttributeOverride(name = "ENTITY_VALUE", column = @Column(name = "SENSOR_VALUE"))
})
...하지만 같은 오류.
편집 :
좋아, 나뿐만 아니라와 마찬가지로 "JOINED"상속 전략을 "SINGLE_TABLE"모든 것이 잘 작동 것을 찾았다. 또한 EclipseLink 버전과 관련이없는 것 같습니다. 1.3 및 2.0.1을 시도했습니다.
END_EDIT
누군가가 나를 도울 수 있습니까?