@Embeddable与hibernate-mongo-ogm中的UUID唯一键

时间:2016-01-07 00:56:16

标签: java mongodb hibernate uuid hibernate-ogm

我有一个可嵌入的集合,我想在其中有一个自动生成的UUID字段。我正在使用hibernate ogm和mongoDB。我正在尝试以下代码,但它会导致以下异常:

@Embeddable
public class Attachment {

    @Id
    @GeneratedValue(generator = "uuid")
    @GenericGenerator(name="uuid", strategy="uuid2")
    private String attachmentId;

例外:

Caused by: org.hibernate.annotations.common.AssertionFailure: Declaring class is not found in the inheritance state hierarchy: com.xxx.yyy.zzz.model.Attachment

如果我删除了这个id字段,除了我的嵌入式文档中没有id之外,一切正常。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我认为现在没有办法做你需要的事。

@GeneratedValue@GenericGenerator@Id应该与实体一起使用,而不是嵌入式(据我所知)。

您可能需要在创建新的嵌入元素时手动生成新的UUID。