如果我使用ex.merge(obj),现在如果在object obj中我将主键设置为数据库中不存在的值,它会创建一个新记录还是会抛出异常?
例如
if obj with pk val = 19 doesnot exist in database,and i set
obj.setPk(20);
obj.setName("nm");
em.merge(obj) // will this throw an exception or create a new record?`enter code here`
答案 0 :(得分:3)
它将创建一个新记录:
如果实体已经在持久性上下文(会话)中,则不会采取任何操作,但级联除外
如果实体是分离的,则返回一个副本(对象'),附加(管理)
如果实体是瞬态的(新实例),则保存该实体并返回持久(和托管)副本