Почему я могу добавить ID в таблицу ассоциации многие ко многим - PullRequest
0 голосов
/ 09 мая 2019

У меня проблема, у меня есть две сущности, и я хочу создать таблицу ассоциации.

В настоящее время моя таблица ассоциаций создана в моей базе данных.Я получаю таблицу с двумя внешними ключами.Однако, когда я помещаю несуществующие идентификаторы в таблицу ассоциации, это работает.

Я думаю, что первичная и внешняя привязка ключа в таблице ассоциации не работает должным образом, я не могу найти проблему.

Мне так:

Сценарий:

@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<>();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...