私のエンティティは次のように見えます
@Entity
@Table(uniqueConstraints = @UniqueConstraint(columnNames = {"id", "service_version_id"}))
public class MarketVersion extends AbstractVersion<MarketVersion> {
@ManyToOne(cascade = CascadeType.ALL)
private Market market;
@OneToOne
private MarketVersion parentVersion;
@OneToMany(cascade = CascadeType.MERGE)
@JoinColumn(name = "services_id", referencedColumnName = "id")
private List<ServiceVersion> services;
}
サービスは次のようになります
public class ServiceVersion extends AbstractVersion<ServiceVersion> {
@ManyToOne(cascade = CascadeType.ALL)
private Service service;
@OneToOne
private ServiceVersion parentVersion;
@Column
private String description;
@Column(nullable = false)
@Enumerated(EnumType.STRING)
private ServiceImplementations implementation;
}
これを実行すると、わかります
[hibernatetool] javax.persistence.PersistenceException: [PersistenceUnit: market] Unable to configure EntityManagerFactory
[hibernatetool] org.hibernate.AnnotationException: Unable to create unique key constraint (id, service_version_id) on table MarketVersion: service_version_id not found
私はこれに慣れていないと確信しています。私は正しいことをしていませんが、理解できません。何をアドバイスしてください
一意の制約を持つ新しいテーブルが必要です (market_version_id および service_version_id)