У меня проблема, у меня есть две сущности, и я хочу создать таблицу ассоциации.
В настоящее время моя таблица ассоциаций создана в моей базе данных.Я получаю таблицу с двумя внешними ключами.Однако, когда я помещаю несуществующие идентификаторы в таблицу ассоциации, это работает.
Я думаю, что первичная и внешняя привязка ключа в таблице ассоциации не работает должным образом, я не могу найти проблему.
Мне так:
Сценарий:
@Table(name = "script")
public class Script implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "nom")
private String nom;
@ManyToMany(fetch = FetchType.LAZY,
cascade =
{
CascadeType.DETACH,
CascadeType.MERGE,
CascadeType.REFRESH,
CascadeType.PERSIST
},
targetEntity = LibellePrerequis.class)
@JoinTable(name = "script_libelleprerequis",
inverseJoinColumns = @JoinColumn(name = "id_script",
nullable = false,
updatable = false),
joinColumns = @JoinColumn(name = "id_libelleprerequis",
nullable = false,
updatable = false),
foreignKey = @ForeignKey(ConstraintMode.CONSTRAINT),
inverseForeignKey = @ForeignKey(ConstraintMode.CONSTRAINT))
@JsonIgnore
private List<LibellePrerequis> libelleprerequiss = new ArrayList<>();
И объект LibellePrerequis:
@Table(name = "libelleprerequis")
public class LibellePrerequis implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "libelle_prerequis")
private String libelle_prerequis;
@ManyToOne
private Produit produit;
@ManyToOne
private Typologie typologie;
@ManyToMany(fetch = FetchType.LAZY,
cascade =
{
CascadeType.DETACH,
CascadeType.MERGE,
CascadeType.REFRESH,
CascadeType.PERSIST
},
targetEntity = Script.class)
@JoinTable(name = "script_libelleprerequis",
joinColumns = @JoinColumn(name = "id_script",
nullable = false,
updatable = false),
inverseJoinColumns = @JoinColumn(name = "id_libelleprerequis",
nullable = false,
updatable = false),
foreignKey = @ForeignKey(ConstraintMode.CONSTRAINT),
inverseForeignKey = @ForeignKey(ConstraintMode.CONSTRAINT))
@JsonIgnore
private List<Script> scripts = new ArrayList<>();