【问题标题】:Can not persist an object with Id equals new BigDecimal(0)无法持久化 Id 等于 new BigDecimal(0) 的对象
【发布时间】:2015-10-21 19:30:44
【问题描述】:

问题是如果我将 id 设置为 0,cat 对象不会持久化:

cat.setId(new BigDecimal(0));
session.save(cat);

它适用于所有其他数字,但不适用于 0。为什么?

【问题讨论】:

  • 您是否在任何地方刷新会话?
  • 如果在你的第二个例子周围加上一个范围大括号会起作用吗?
  • 对不起,你说的冲洗是什么意思?我打开我的会话,打开一个事务,提交它,然后在我的指令结束时关闭会话。
  • 此代码示例是等效的。其他地方的问题。
  • 不完全是,在第二种情况下,cat0、cat1 和 cat2 保留在范围内,因此每个 Cat 都有一个额外的引用。

标签: java sql oracle hibernate hql


【解决方案1】:

好吧,抱歉,事实上,当我从 i = 1 开始循环时它会起作用。

实际上,真正的问题是如果我将 id 设置为 0,cat 对象不会持久化:

cat.setId(new BigDecimal(0));
session.save(cat);

如果有人知道为什么?我应该在一个新问题中提出这个问题。

【讨论】:

  • 你最好用上面的内容编辑你的问题。
猜你喜欢
  • 1970-01-01
  • 2011-12-14
  • 2013-05-12
  • 1970-01-01
  • 1970-01-01
  • 2012-05-14
  • 2012-06-16
  • 2012-10-08
相关资源
最近更新 更多