0
で@JoinTableのエントリ例外私は休止状態使用してエンティティを保存しようとしたとき、それはこれが関連であるMySQLIntegrityConstraintViolationException: Duplicate entry '2' for key ...
MySQLIntegrityConstraintViolationException:重複休止
を与えているが
@ManyToMany(cascade = CascadeType.ALL)
@JoinTable(name = "selectedLanguages",
joinColumns = @JoinColumn(name = "preferenceId"),
inverseJoinColumns = @JoinColumn(name = "languageId"))
private List<Language> languages;
クラスの環境で宣言され、これはmysqlサーバで作成されたテーブル
CREATE TABLE `languages` (
`preferenceId` bigint(20) NOT NULL,
`languageId` int(11) NOT NULL,
UNIQUE KEY `UK_ipl1uqtuxu2oxu5pddfi6sebl` (`languageId`),
KEY `FKm18lbdrrxs89ff7pymjalc7ca` (`preferenceId`),
CONSTRAINT `FKhmgypuduucfqf98sf2ymorqpr` FOREIGN KEY (`languageId`) REFERENCES `languages` (`languageId`),
CONSTRAINT `FKm18lbdrrxs89ff7pymjalc7ca` FOREIGN KEY (`preferenceId`) REFERENCES `preferences` (`preferenceId`)
);
言語IDがユニークであることを示しています。これは、ユーザとして意図された動作ではありませんいくつかの言語を知ることができ、多くのユーザーが1つの言語を参照できます。 unique=false
をinverseJoin
に追加してみました。 languageIdの一意制約を削除する方法を教えてください。私のコードで何が間違っていますか?どんな助けもありがとう。