Итак, у меня проблема при использовании @CollectionTable с составным внешним ключом.У меня есть и сущность A, которая имеет коллекцию List, сущность A имеет составной первичный ключ B с двумя строками, сущность A выглядит примерно так:
public class A implements Serializable {
@EmbeddedId
private B primaryKey;
@ElementCollection(fetch = FetchType.EAGER)
@CollectionTable(name = "table_d", joinColumns = {
@JoinColumn(name = "aaa_aaa", referencedColumnName = "aaa_aaa"),
@JoinColumn(name = "bbb_bbb", referencedColumnName = "bbb_bbb")})
@Column(name = "c_records")
private List<String> cRecords = new ArrayList<>();
}
@Embeddable
public class B implements Serializable {
@Column(name = "aaa_aaa")
private String aaa;
@Column(name = "bbb_bbb")
private String bbb;
}
Когда я вставляю запись, все работает нормально, но когда япопытаться найти эту запись по идентификатору (B primaryKey), она не получает cRecords и отображается как пустой «PersistentBag», также, когда я пытаюсь обновить что-либо из сущности A, я получаю следующую ошибку:
WARN loading.internal.LoadContexts: 98 - HHH000100: отказоустойчивая очистка (коллекции): org.hibernate.engine.loading.internal.CollectionLoadContext@4a03acb6 WARN loading.internal.CollectionLoadContext: 413 - HH00В CollectionLoadContext # cleanup localLoadingCollectionKeys содержал [1] записей
java.lang.ClassCastException: org.hibernate.loader.plan.build.internal.returns.CollectionReturnImpl не может быть приведен к org.hibernate.loader.plan.spi.Fetch
Кто-нибудь знает, что с ним не так?