Содержимое является владельцем связи, поэтому мой код выглядит следующим образом:
Код: Выделить всё
@Entity
@Table(name = "content")
public class ContentEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "CONTENT_ID", nullable = false)
private Long id;
// some stuff
@ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@JoinTable(name = "content_data",
joinColumns = @JoinColumns(name = "CONTENT_ID"),
inverseJoinColumns = @JoinColumns(name = "DATA_ID")
private Set dataEntities;
// Getters & Setters
}
@Entity
@Table(name = "data")
public class DataEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "DATA_ID", nullable = false)
private Long id;
// some stuff
// Getters & Setters
}
Я использую метод save из моего ContentRepository, который расширяет JpaRepository.
Я пытался изменить тип каскада, но не могу понять, как это работает...
Я пытался установить для него значение { MERGE, PERSIST, только для MERGE или только для PERSIST или вообще без каскада, но я получаю либо ошибку целостности (UnexpectedRollBackException), когда пытаюсь создать ассоциацию с Данные, которые не существуют, или объект, переданный по ошибке для сохранения.
Я хочу, по возможности, избежать проверки вручную с помощью моего репозитория, существуют или нет те или иные данные.< /п>
Подробнее здесь: https://stackoverflow.com/questions/788 ... iated-data
Мобильная версия