Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
只是为了好玩,我正在使用普通的 JDBC 编写一些 DAO。
目前我有一个添加方法,可以将实体数据保存到记录中。现在,我需要考虑记录已经存在的情况。我猜想在现成的 ORM 中使用持久方法:
这通常是怎么做的?
在像 Hibernate 这样的典型 ORM 中,如果您尝试插入一个与持久实体具有相同标识符的瞬态实体,您将得到一个 Constraint Violation 异常。
我建议您开始交易,搜索/查找具有相同标识符的实体。如果存在,请告诉您的应用程序存在问题,可能是自定义异常和回滚。如果不存在,则继续插入实体并提交事务。
这一切都取决于什么构成了一个平等的实体,即。PK、一些唯一字段等。通常,在 ORM 中,您将能够为实体标识符定义生成策略。