Вставьте ассоциацию с @ManyToMany в спящий режим, не зная, существуют ли связанные данные.JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Вставьте ассоциацию с @ManyToMany в спящий режим, не зная, существуют ли связанные данные.

Сообщение Anonymous »

У меня есть две сущности: Контент и Данные, связанные отношением @ManyToMany.
Содержимое является владельцем связи, поэтому мой код выглядит следующим образом:

Код: Выделить всё

@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

}
Я хочу иметь возможность вставлять в таблицу содержимого и в то же время вставлять ссылки в таблицу связей content_data, но не зная, существуют ли уже данные в базе данных (я хочу вставить контент с некоторыми объектами данных, но некоторые из них уже существуют, а некоторые нет).
Я использую метод save из моего ContentRepository, который расширяет JpaRepository.
Я пытался изменить тип каскада, но не могу понять, как это работает...
Я пытался установить для него значение { MERGE, PERSIST, только для MERGE или только для PERSIST или вообще без каскада, но я получаю либо ошибку целостности (UnexpectedRollBackException), когда пытаюсь создать ассоциацию с Данные, которые не существуют, или объект, переданный по ошибке для сохранения.
Я хочу, по возможности, избежать проверки вручную с помощью моего репозитория, существуют или нет те или иные данные.< /п>

Подробнее здесь: https://stackoverflow.com/questions/788 ... iated-data
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»