2016-01-07 4 views
0

У меня есть встраиваемая коллекция, и я хочу иметь в ней автогенерированное поле UUID. Я использую hibernate ogm с mongoDB. Я пытаюсь следующий код, но это приводит к следующему исключению:@Embeddable с уникальным ключом UUID в hibernate-mongo-ogm

@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 

если удалить это поле идентификатора, все работает отлично, за исключением, что мой внедренный документ не имеет идентификатора в нем , Есть предположения?

ответ

0

Я не думаю, что есть способ сделать то, что вам нужно в данный момент.

@GeneratedValue, @GenericGenerator и @Id предполагается использовать с сущностями, а не с вложенными (насколько мне известно).

Возможно, вам необходимо создать новый UUID вручную при создании нового внедренного элемента.

Смежные вопросы