0
I했습니다 다음 최대 절전 모드최대 절전 모드 올바른 매핑지도
@Entity
@Table(name="MODEL")
public class Model {
@Id
@GeneratedValue(generator="increment")
@GenericGenerator(name="increment", strategy = "increment")
Long id;
@ElementCollection(fetch=FetchType.EAGER)
@CollectionTable
(
name="DEVICE_LiCENSE_ATTRIBUTE",
[email protected](name="DEVICE")
)
@MapKeyJoinColumn(name="LICENSE_ATTRIBUTE",nullable=false)
Map<String,SoftwareLicense> softwareLicenses = new HashMap<String, SoftwareLicense>();
}
의 클래스 그리고 내가 표를
create table DEVICE_LiCENSE_ATTRIBUTE (DEVICE bigint not null, Type varchar(255) not null, VALUE varchar(255) not null, softwareLicenses_KEY varchar(255), primary key (DEVICE, softwareLicenses_KEY))
create table DMS_DEVICE_MODEL (id bigint not null, DESCRIPTION varchar(255) not null, DISPLAYNAME varchar(255) not null, UNIQUENAME varchar(255) not null, primary key (id), unique (UNIQUENAME))
을 구축 할 trues 최대 절전 모드를 실행할 때이 지금 내 임베디드 클래스
@Embeddable
public class SoftwareLicense {
@Column(name = "Type", nullable = false)
@Enumerated(EnumType.STRING)
private Type type;
@Column(name = "VALUE", nullable = false)
private String value;
}
입니다
DEVICE_LICENSE_ATTRIBUTE
테이블을 만들 때 내 문제가 발생합니다.
softwareLicenses_KEY varchar(255)
는 널 (NULL) 및 최대 절전 모드가 널 (NULL) 행에 복합 기본 키를 만들려고합니다.
primary key (DEVICE, softwareLicenses_KEY)
일부 DB (HSQLDB)에서 작동하지만 다른 환경 (MS SQL 2008)으로 전환하면 오류가 발생합니다.
Cannot define PRIMARY KEY constraint on nullable column in table 'DEVICE_LICENSE_ATTRIBUTE'
이 문제를 어떻게 해결할 수 있습니까?