使用GeneratedValue作为主键的Hibernate SaveOrUpdate

新手

我是Hibernate的新手,正在尝试学习它的细微差别。我正在尝试使用hibernate保存或更新实体。我的pojo课:-

    @Entity
    @Table(name = "TestDB")
    public class TestCaseData {

    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    private intid;
    @Column(columnDefinition="TEXT")
    private String location;
    private String name;

    /*Getters and setters*/

主类:-

    public TestDbDao{
        public static void main(String args[]){
           TestCaseData d1 = new TestCaseData();
           TestCaseData d2 = new TestCaseData();
           TestCaseData d3 = new TestCaseData();

           d1.setHash("New York");
           d1.setName("Panache");
           saveOrUpdate(d1);
           /** d2 and d3 **/
    }
  }

我是saveOrUpdate这个实体。第一次运行主类时,在表中创建了3行。当我第二次运行相同的程序时,据我所知,当存在saveOrUpdate时,如果表中不存在该值则应保存该表,或者如果表中已有的值被更新则应进行更新。但是我发现相同的3行添加到具有不同ID的表中。id 1,2,3,4,5,6是相同的。为什么saveOrUpdate不能与generateValue id一起使用?谁能解释一下?

阿德里安·沉

可以预期,因为您正在运行该程序两次。

每次程序运行时,Hibernate只会看到您传入3个新实体(没有ID),因此您要告诉Hibernate在DB中创建新记录。

要查看saveAndUpdate()的效果,您可以第二次将分离的实例传递给Hibernate,例如TestCaseData,ID为ID实例与DB中的现有记录相对应,但ID为name您应该能够看到Hibernate更新数据库中的相应记录。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

没有主键的NHibernate SaveOrUpdate

来自分类Dev

Hibernate SaveOrUpdate-多个工作线程

来自分类Dev

在jooq中,hibernate的saveOrUpdate方法相当于什么?

来自分类Dev

在休眠saveOrUpdate()期间获取org.hibernate.StaleStateException

来自分类Dev

在休眠状态下使用update或saveorupdate方法

来自分类Dev

使用UUID作为主键时,Hibernate的ID值错误

来自分类Dev

Hibernate saveOrUpdate不更新现有记录,而是将记录另存为新条目

来自分类Dev

为什么 Hibernate saveOrUpdate 对阿拉伯语数据失败?

来自分类Dev

使用外键作为主键

来自分类Dev

使用自动递增ID作为主键

来自分类Dev

在 Hibernate 中,当对象已存在于数据库中时,为什么 saveOrUpdate 会给出异常

来自分类Dev

如何在Hibernate实体注释中使用两个外键作为主键

来自分类Dev

如果使用save,为什么saveOrUpdate在执行时没有在数据库中插入注释

来自分类Dev

Hibernate / JPA 2 / PostgreSQL-实体UUID作为主键

来自分类Dev

saveOrUpdate休眠时发生NullPointerError

来自分类Dev

Hibernate 中的 saveOrUpdate() 是否保留数据库中存在但未在传递给函数的对象中设置的现有字段的值?

来自分类Dev

PostgreSQL使用UUID和Text作为主键

来自分类Dev

在SQLite表中使用文本作为主键不好吗?

来自分类Dev

我可以使用VARCHAR作为主键吗?

来自分类Dev

在mongo中使用slug作为主键/ _id的性能劣势?

来自分类Dev

使用SQL Server FILESTREAM GUID作为主键

来自分类Dev

在Laravel中使用条形码编号作为主键

来自分类Dev

我可以使用VARCHAR作为主键吗?

来自分类Dev

使用SQL Server FILESTREAM GUID作为主键

来自分类Dev

在SQLite表中使用文本作为主键不好吗?

来自分类Dev

使用字符串值作为主键

来自分类Dev

使用昵称作为主键更新表的行

来自分类Dev

如何通过Sails js使用bigserial作为主键ID

来自分类Dev

使用自动递增列作为主键的数据插入

Related 相关文章

  1. 1

    没有主键的NHibernate SaveOrUpdate

  2. 2

    Hibernate SaveOrUpdate-多个工作线程

  3. 3

    在jooq中,hibernate的saveOrUpdate方法相当于什么?

  4. 4

    在休眠saveOrUpdate()期间获取org.hibernate.StaleStateException

  5. 5

    在休眠状态下使用update或saveorupdate方法

  6. 6

    使用UUID作为主键时,Hibernate的ID值错误

  7. 7

    Hibernate saveOrUpdate不更新现有记录,而是将记录另存为新条目

  8. 8

    为什么 Hibernate saveOrUpdate 对阿拉伯语数据失败?

  9. 9

    使用外键作为主键

  10. 10

    使用自动递增ID作为主键

  11. 11

    在 Hibernate 中,当对象已存在于数据库中时,为什么 saveOrUpdate 会给出异常

  12. 12

    如何在Hibernate实体注释中使用两个外键作为主键

  13. 13

    如果使用save,为什么saveOrUpdate在执行时没有在数据库中插入注释

  14. 14

    Hibernate / JPA 2 / PostgreSQL-实体UUID作为主键

  15. 15

    saveOrUpdate休眠时发生NullPointerError

  16. 16

    Hibernate 中的 saveOrUpdate() 是否保留数据库中存在但未在传递给函数的对象中设置的现有字段的值?

  17. 17

    PostgreSQL使用UUID和Text作为主键

  18. 18

    在SQLite表中使用文本作为主键不好吗?

  19. 19

    我可以使用VARCHAR作为主键吗?

  20. 20

    在mongo中使用slug作为主键/ _id的性能劣势?

  21. 21

    使用SQL Server FILESTREAM GUID作为主键

  22. 22

    在Laravel中使用条形码编号作为主键

  23. 23

    我可以使用VARCHAR作为主键吗?

  24. 24

    使用SQL Server FILESTREAM GUID作为主键

  25. 25

    在SQLite表中使用文本作为主键不好吗?

  26. 26

    使用字符串值作为主键

  27. 27

    使用昵称作为主键更新表的行

  28. 28

    如何通过Sails js使用bigserial作为主键ID

  29. 29

    使用自动递增列作为主键的数据插入

热门标签

归档