Java 用相同的主键删除和插入以代替更新

Java 用相同的主键删除和插入以代替更新,java,hibernate,annotations,one-to-one,Java,Hibernate,Annotations,One To One,我在表TICKETINFO和TICKETINFO_备注之间有一个简单的一对一关系 TICKETINFO TICKETINFOID pk, REMARK varchar(128), TICKETDATE timestamp 及 和TICKETINFOID将是TICKETINFO表中的外键,并且必须填充TICKETINFO_REMARK的备注字段以及相应TICKETINFOID的TICKETINFO备注字段 对于1张TicketFoid,将有一条备注 插入工作正常 现在我的问题是: 我的要求是,由

我在表TICKETINFO和TICKETINFO_备注之间有一个简单的一对一关系

TICKETINFO
TICKETINFOID pk, REMARK varchar(128), TICKETDATE timestamp

和TICKETINFOID将是TICKETINFO表中的外键,并且必须填充TICKETINFO_REMARK的备注字段以及相应TICKETINFOID的TICKETINFO备注字段

对于1张TicketFoid,将有一条备注

插入工作正常

现在我的问题是:

我的要求是,由于某些性能问题,我不应该更新TICKETINFO_备注中的任何记录。我需要先删除该记录,并将其与相同的TICKETINFOID和新备注一起插入

例如:

TICKETINFO表具有:

**TICKETINFOID** :     1
**REMARK**   : ABC
**TICKETDATE** :2012-06-12
TICKETINFO_备注有:

**TICKETINFOID** :     1
**REMARK**   : ABC
现在,我想将TICKETINFO_备注中的备注更改为XYZ123 因此,我必须从TICKETINFO_备注中删除条目并重新插入它,如下所示

**TICKETINFOID** :     1
**REMARK**   : XYZ123
做这件事的代码是什么?
请帮忙

首先,您应该选择一个带有TICKETINFO\u备注表的记录表单TICKETINFO\u备注表。如果已经找到该记录,您应该从TICKETINFO\u备注表中删除该记录,然后插入带有该TICKETINFO\u备注表的新记录。这是满足您需求的唯一逻辑。如果您想获得示例代码,请告诉我您在CRUD操作中使用了哪种技术,例如JPA、HIBERNATE、IBATIS或JDBC等。

您尝试过什么?为什么更新会有性能问题,而不是先删除后插入?我不理解更新与删除/插入的限制。您可以尝试替换,但我认为如果行键存在,则会进行更新,否则会进行插入。发生溢出问题的原因是将varchar字段从较小的长度更新为较大的长度。这就是为什么会有这样的要求。你能给出一些关于代码的解决方案吗?你使用的是哪个数据库版本?一定有比限制更新更好的方法。我正在使用hibernate注释。
**TICKETINFOID** :     1
**REMARK**   : XYZ123