0
Я хочу, чтобы отобразить класс А с коллекцией класса C. и класс В с коллекцией класса C.Карта 2 лица на третий дает hibernate.MappingException: Повторный столбец отображения для объекта
Вот мои объекты :
@Entity
@Table(name = "a")
Class A:
...
@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "objectid" , nullable = false, updatable = false)
@Where(clause = "field= 'x'")
private Set<C> cSet = new HashSet<>();
@Entity
@Table(name = "b")
Class B:
...
@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "objectid" , nullable = false, updatable = false)
@Where(clause = "field= 'x'")
private Set<C> cSet = new HashSet<>();
@Entity
@Table(name = "c")
Class C:
...
@Column(name = "objectid")
private String objectid;
я получил исключение:
hibernate.MappingException: Repeated column in mapping for entity: C column: objectid (should be mapped with insert="false" update="false")
Я попытался с помощью referencedColumnName EX:
Class A:
...
@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "objectidA" ,referencedColumnName="objectid", nullable = false, updatable = false)
@Where(clause = "field= 'x'")
private Set<C> cSet = new HashSet<>();
Не имеет успеха. Любые предложения?
Как это будет работать? Элемент таблицы C с ссылочным объектом FKII 1 будет связан с элементом A с идентификатором 1 и элементом B с идентификатором 1. Это действительно то, что вы хотите? –