Java Hibernate@Embedded在@embeddeble中忽略注释?

Java 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

我试图在annother
@embeddedable
中使用
@embeddedable
,这是规范所支持的,但是,下面de
code
类中的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错误,但它已经被修复了。不知道你为什么会受到影响。