Java Hibernate@Embedded在@embeddeble中忽略注释?
我试图在annotherJava Hibernate@Embedded在@embeddeble中忽略注释?,java,spring,hibernate,jpa,Java,Spring,Hibernate,Jpa,我试图在annother@embeddedable中使用@embeddedable,这是规范所支持的,但是,下面decode类中的JPA注释似乎被忽略了。枚举通过序号而不是字符串表示进行(反)序列化。我可以想出几个变通办法,但这不是问题所在。我在努力理解我做错了什么 我正在使用Hibernate4.2.5和Spring3.2.4 @Entity public class ExampleEntity implements Serializable { @Id @Generated
@embeddedable
中使用@embeddedable
,这是规范所支持的,但是,下面decode
类中的JPA注释似乎被忽略了。枚举通过序号而不是字符串表示进行(反)序列化。我可以想出几个变通办法,但这不是问题所在。我在努力理解我做错了什么
我正在使用Hibernate4.2.5和Spring3.2.4
@Entity
public class ExampleEntity implements Serializable {
@Id
@GeneratedValue
private Long id;
@ElementCollection(fetch = EAGER)
@CollectionTable(name="example_embeddable",
joinColumns=@JoinColumn(name="example_entity_id"))
private Set<ExampleEmbeddable> embeddables = new HashSet<>();
// This enum is (de)serialized as a string just fine
@Enumerated(EnumType.STRING)
private AnotherEnum another;
private String stuff;
}
@Embeddable
public class ExampleEmbeddable implements Serializable {
@Embedded
private Code code;
// This enum is (de)serialized as a string just fine
@Enumerated(EnumType.STRING)
private StatusEnum status;
}
@Embeddable
public class Code implements Serializable {
public enum Version {
RED,
BLUE,
GREEN
}
private String code;
//Why is this enum is (de)serialized by ordinal?
@Enumerated(EnumType.STRING)
private Version version;
}
@实体
公共类ExampleEntity实现可序列化{
@身份证
@生成值
私人长id;
@ElementCollection(fetch=EAGER)
@CollectionTable(name=“example\u embeddeble”,
joinColumns=@JoinColumn(name=“example\u entity\u id”))
private Set embeddedables=new HashSet();
//此枚举已(反)序列化为字符串
@枚举(EnumType.STRING)
二等兵;
私人字符串的东西;
}
@可嵌入
公共类ExampleEmbeddeble实现可序列化{
@嵌入
私人密码;
//此枚举已(反)序列化为字符串
@枚举(EnumType.STRING)
私有状态枚举状态;
}
@可嵌入
公共类代码实现可序列化{
公共枚举版本{
红色
蓝色
绿色
}
私有字符串码;
//为什么此枚举由序号(反)序列化?
@枚举(EnumType.STRING)
私人版本;
}
看起来很久以前就有一个Hibernate错误,但它已经被修复了。不知道你为什么会受到影响。