java - 在休眠中插入新行
问题描述
当前代码向数据库添加一行。如果我重用此代码,它将更新现有行而不是创建新行。如何使用相同的代码创建新行?
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
解决方案
Hibernate 使用persistence.xml
orhibernate.cfg.xml
来读取数据库属性。要插入新行,hibernate.hbm2ddl.auto
必须将其设置为update
而不是create-drop
或create
<properties>
<property name="hibernate.hbm2ddl.auto" value="update"/>
</properties>
您将在下面找到每个值的描述链接: Hibernate hbm2ddl.auto 配置的可能值是什么以及它们的作用
推荐阅读
- java - 将 log4j2 日志重定向到 java.util.logging
- regex - 如何在spark sql中提取where子句作为数组?
- php - 如何将表行返回到现有变量?
- javascript - ReactJS 组件落后于 Navbar
- node.js - Firebase 托管 + 自定义服务器不兼容?
- ios - 重置领域云中所有领域的架构
- python-3.x - 找不到 cx-freeze 模块,有教程吗?
- python - Python直接将日期转换为日期时间
- java - 找不到资源文件夹中的文件
- amazon-web-services - hex(sha256(...)) 和 sha256(...) 之间的区别