说我在MySQL中有3个表。表A,B和C。
表A为:
<script>
import alertMixin from '@/path/to/mixin/alertMixin';
export default {
name: 'where-ever-you-want',
mixins: [alertMixin],
};
</script>
表B为:
CREATE TABLE `table_a` (
`a_id` bigint(20) NOT NULL AUTO_INCREMENT,
`a_name` varchar(255) DEFAULT NULL,
PRIMARY KEY (`a_id`)
);
表CREATE TABLE `table_b` (
`b_id` BIGINT(20) NOT NULL AUTO_INCREMENT,
`b_name` VARCHAR(255) DEFAULT NULL,
PRIMARY KEY (`b_id`)
);
和A
具有多对多关系,因此表B
将用作它们的参考表,其中包含表C
和{ {1}}。
A
使用Hibernate时,此体系结构没有问题,因为我可以将B
注释与CREATE TABLE `table_c` (
`a_id` BIGINT(20) NOT NULL,
`b_id` BIGINT(20) NOT NULL,
PRIMARY KEY (`a_id`,`b_id`)
);
注释结合使用。
Hibernate会根据第一列和第二列的组合来对待唯一性。
但是,当我尝试使用Web控制台配置集群时,ignite不允许我对表@JoinTable
进行插入,因为在其中一列中,该值已经存在,应该已经存在就像在休眠状态一样,其唯一性由两列的组合决定。
谁能告诉我如何为这些表配置缓存?
谢谢!
更新!:
我以为这个问题已经神秘地解决了,但是当我将日志记录转为冗长时,对引用表(复合键)的插入仍然失败。
Ignite刚刚允许我的应用程序继续运行,因为我已启用了设置后写功能。但是我所做的更改并没有真正保留在MySql持久存储中。
经过一番调查,我发现Ignite对复合键产生了错误的插入查询。
@ManyToMany
此查询产生语法错误,因为该查询不完整。通过覆盖Ignite的MySqlDialect并在 updPart 变量中添加了一个检查项,以设法解决此问题,如果变量为空,则可以生成正确的语法。
我不确定这是否是Ignite的错误或限制。