首页 > 解决方案 > 在休眠中插入新行

问题描述

当前代码向数据库添加一行。如果我重用此代码,它将更新现有行而不是创建新行。如何使用相同的代码创建新行?


SessionFactory sessionFactory = HibernateFactory.getSessionFactory();
Session session = sessionFactory.openSession();
session.beginTransaction();

Item item = new Item();
item.setName("name");
item.setPrice(122.3);
item.setCount(225);
session.persist(item);

session.getTransaction().commit();
session.close();
public abstract class AbstractEntity {
    @Id
    @GeneratedValue(strategy= GenerationType.IDENTITY)
    @Column(name="id")
    private Long id;
}

项目扩展 AbstractEntity

标签: javadatabasehibernate

解决方案


Hibernate 使用persistence.xmlorhibernate.cfg.xml来读取数据库属性。要插入新行,hibernate.hbm2ddl.auto必须将其设置为update而不是create-dropcreate

<properties>
  <property name="hibernate.hbm2ddl.auto" value="update"/>
</properties>

您将在下面找到每个值的描述链接: Hibernate hbm2ddl.auto 配置的可能值是什么以及它们的作用


推荐阅读