gpt4 book ai didi

java - 我如何根据非唯一键插入或更新 jpa 实体?

转载 作者:行者123 更新时间:2023-11-29 04:32:30 25 4
gpt4 key购买 nike

我有一个如下所示的 Mysql 表:

CREATE TABLE ABCD
(
TId BIGINT(8) PRIMARY KEY AUTO_INCREMENT,
TKey VARCHAR(200) NOT NULL,
TValue BIGINT(8) NOT NULL
);

它有如下数据:

TId TKey TValue 
1 abc 123
2 cde 345
3 def 546

我想做的是,如果我再次插入具有相同 TKey 的实体,它将更新现有记录而不是插入新记录。

下面是我保存实体的代码:

ABCD abcd = new ABCD();
abcd.setKey(key);
abcd.setValue(value);
abcdService.create(abcd);

最佳答案

Hibernate 使用主键列值来跟踪 Java 代码中的实体。因此,如果您使用键 cde 和一些值创建一个新的 ABCD 实体,Hibernate 会将其作为一个新实体,并且当您保存它时将导致插入到你的基础表。

如果您想修改键为cde 的实体,那么您应该首先获取该记录:

EntityManager em = getEntityManager();
ABCD movie = em.find(ABCD.class, 2);
movie.setValue(789);

以上假定您的框架已经为您处理事务。

关于java - 我如何根据非唯一键插入或更新 jpa 实体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56555101/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com