La classe JPA Embeddable può contenere un riferimento a un oggetto?
Aug 22 2020
Sto cercando di incorporare una classe in un'altra che contiene riferimenti a oggetti. Ottengo sempre
org.hibernate.MappingException: Could not determine type for: ...
eccezione. La mia domanda è che esiste un modo per incorporare una classe che contiene riferimenti a oggetti o che le classi incorporabili memorizzano solo le primitive.
Ho già provato l'annotazione @Target () ma non aiuta.
Risposte
2 SternK Aug 22 2020 at 18:32
Sì, è possibile. Guarda la documentazione .
@Embeddable
public static class Publisher {
private String name;
@ManyToOne(fetch = FetchType.LAZY)
private Country country;
//Getters and setters, equals and hashCode methods omitted for brevity
}
@Entity(name = "Book")
@AttributeOverrides({
@AttributeOverride(
name = "ebookPublisher.name",
column = @Column(name = "ebook_publisher_name")
),
@AttributeOverride(
name = "paperBackPublisher.name",
column = @Column(name = "paper_back_publisher_name")
)
})
@AssociationOverrides({
@AssociationOverride(
name = "ebookPublisher.country",
joinColumns = @JoinColumn(name = "ebook_publisher_country_id")
),
@AssociationOverride(
name = "paperBackPublisher.country",
joinColumns = @JoinColumn(name = "paper_back_publisher_country_id")
)
})
public static class Book {
@Id
@GeneratedValue
private Long id;
private Publisher ebookPublisher;
private Publisher paperBackPublisher;
//Getters and setters are omitted for brevity
}