기본적으로 <name, value>
쌍인 속성 맵을 포함하는 클래스에서 Hibernate 주석을 사용하고 있습니다. 속성 이름은 PROPERTY enum
에 정의되어 있으며 각 속성에는 허용되는 값 집합이 있으며 enum
으로 정의됩니다. 각 속성의 값을 정의 enum
자신을 가지고 있기 때문에, 부동산지도는최대 절전 모드에서 열거 형 값으로 EnumMap에 주석을 추가하는 방법은 무엇입니까?
Map<PROPERTY, Enum> properties = new EnumMap<PROPERTY, Enum> (PROPERTY.class);
나는 문제가 Enum
값을 매핑하는 데 문제로 정의된다. 이 정의 : 당신이 볼 수 있듯이
create table EnumMapTest (
id bigint not null auto_increment,
primary key (id)
) ENGINE=InnoDB;
create table EnumMapTest_properties (
EnumMapTest_id bigint not null,
value tinyblob,
name varchar(255) not null,
primary key (EnumMapTest_id, name)
) ENGINE=InnoDB;
, 열거 클래스가 tinyblob
로 매핑되고, 데이터베이스에 완전히 읽을 수 :
@ElementCollection
@MapKeyEnumerated(EnumType.STRING)
@MapKeyColumn(name="name")
@Column(name="value")
@Enumerated(EnumType.STRING)
Map<PROPERTY, Enum> properties = new EnumMap<PROPERTY, Enum> (PROPERTY.class);
는 다음의 DDL을 생성합니다. 나는 구체적인 enum
enum VALUE {ONE, TWO, THREE};
@ElementCollection
@MapKeyEnumerated(EnumType.STRING)
@MapKeyColumn(name="name")
@Column(name="value")
@Enumerated(EnumType.STRING)
Map<PROPERTY, VALUE> properties = new EnumMap<PROPERTY, VALUE> (PROPERTY.class);
으로지도를 정의하면
는 매핑은 괜찮 :
create table EnumMapTest_properties (
EnumMapTest_id bigint not null,
value varchar(255),
name varchar(255) not null,
primary key (EnumMapTest_id, name)
) ENGINE=InnoDB;
그래서 문제가 Enum
클래스 자체의 매핑입니다.
사용자 지정 형식을 만들지 않고도 열거 형 (가급적이면 문자열)에 열거 형을 매핑하는 방법이 있습니까?
우리가 여전히 Hibernate 3.6.10에 있다는 사실이 우리에게 불리하지 않기를 바랍니다. 어떤 도움
내가 그 일을 끝냈다. 감사. 나는 수동 변환을 저장하고 싶었다. –