2012-01-21 12 views
5

Używam @ElementCollection dla listy niestandardowej obiektuJPA @Embeddable

@ElementCollection 
@CollectionTable(name = "choice", joinColumns = @JoinColumn(name = "itemId")) 
@OrderColumn(name = "index") 
private List<Choice> choices = new ArrayList<Choice>(); 

Stworzyłem klasę Wybór jak ten

//@Embeddable 
@Table(name = "choice") 
@Cacheable(false) 
@Audited 
public class Choice implements Serializable{ 

Jeśli używam @Embeddable adnotacji jestem coraz org.hibernate.MappingException: Type not supported for auditing: org.hibernate.type.ComponentType

Jestem nowy w WZP. Czy jest coś, czego mi brakuje?

+0

Czego nie rozumiesz? Wiadomość jest całkiem jasna: nie można kontrolować komponentu/osadzania. Zrób z niego prawdziwą istotę. –

Odpowiedz

5

Jeśli chcesz użyć @Embeddable, pole odnoszące się do klasy @Embeddable musi mieć adnotację @Embedded. Następnie pola w klasie @Embedded muszą mieć odpowiednie adnotacje JPA, aby JPA wiedział, co z nimi zrobić. Możesz przeczytać this, aby w pełni zrozumieć, co robi @Embbedable.

+0

dzięki za edycję. Nie wiedziałem, że mogę formatować, korzystając z cytatu z tyłu. – Christine