【发布时间】:2018-11-14 16:32:37
【问题描述】:
我正在尝试将当前行的副本添加到表中并进行一些更改。
我有一个表格,例如 3 个列(id、col1、col2), 和 2 行(492d0a75、some_text1、some_text2)。
我的表的列 ID 不是自动递增的,我使用:
@Id
@GeneratedValue(generator = "uuid_gen")
@GenericGenerator(name = "uuid_gen", strategy = "uuid2")
@Column(name = "id", length = 36)
休眠注释以生成 unic id。
我想做这样的事情:
insert into mytable(id, col1, col2)
select id, col1, 'other_value'
from mytable;
但不能这样做,因为 id 不是 unic。
我该怎么做?
【问题讨论】:
-
insert into mytable(col1, col2) select col1, 'other_value' from mytable -
@Andreas“我的表的列 ID 没有自动递增”这个插入不正确我会得到“错误:“id”列中的空值违反了 NOT NULL 约束”
-
MyEntity original = em.find(MyEntity.class, id); em.persist(new MyEntity(original.getCol1(), "other value"); -
@JBNizet 我正在尝试通过 flyway 迁移脚本来做到这一点
-
然后用 Java 编写迁移以生成 UUID,或在迁移脚本中硬编码预先计算的 UUID。
标签: java sql postgresql hibernate insert