gpt4 book ai didi

java - 关于 Hibernate save() 方法的一些说明。为什么要正确更新现有记录?

转载 作者:行者123 更新时间:2023-12-01 11:04:34 25 4
gpt4 key购买 nike

我对 Hibernate 还很陌生,我有以下疑问。

进入名为TWP1007_PROGETTO的数据库表,我有这一行(但此时内容并不重要):

PRG_PRO COD_MEC_ATT DAT_ANN_SCO_ATT COD_MEC_INI_PRO COD_PRO IMP_FIN COD_TIP_STA FLG_TIP_PRG PRG_GRA_WIF PRG_GRA_PNS FLG_PRE_FIR_DIR FLG_PRE_FIR_REV DAT_INS_REN DESC_NOM_FIL_REN    OGG_FIL_REN DAT_VAL DES_NOT_VAL DAT_TRA_UFF_LIQ IMP_TOT_SPE IMP_SAL DES_NOM_UTE_VAL DES_NOM_DIR_REN DAT_ORA_ULT_MOV COD_PGM_ULT_MOV COD_UTE_ULT_MOV
2 AGIS018009 201516 AGIS018009 Progetto Wifi 7980,00 4 W 2 null 12/10/2015 00:00:00 Rimesso in lavorazione user.name

然后,在 Spring MVC service 类中,我创建了此方法来更新此表的记录:

public void rimettiInLavorazioneProgetto(Twp1007Progetto progetto) {
progettoRepo.save(progetto);
}

其中(Twp1007Progetto progetto 是映射 TWP1007_PROGETTO 表的对象)。

正如您在前面的方法中看到的,我使用 save() hibernate 方法。

它有效并且记录已正确更新,但这似乎很奇怪,因为根据我的理解,save()方法必须创建一个新记录,而update() 方法必须更新现有记录。

那么为什么它有效呢?为什么它会正确更新现有记录?

最佳答案

是的。 Save()当且仅当您的对象没有生成的标识符时,方法才会创建新记录

Persist the given transient instance, first assigning a generated identifier. (Or using the current value of the identifier property if the assigned generator is used.)

如果您已经生成了与您的对象关联的标识符,它只会保存到该行。

关于java - 关于 Hibernate save() 方法的一些说明。为什么要正确更新现有记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33079769/

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