- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
@RequestMapping("/testing")
@Transactional
public String testing(HttpServletRequest request, final ModelMap model)
{
Criteria criteria = session.getCurrentSession().createCriteria(Student.class);
criteria.setReadOnly(true);
criteria.add(Restrictions.eq("id", "ID12345"));
List<Student> result = criteria.list();
Student abc = result.get(0);
abc.setFirstname("AAA");
Criteria criteria2 = session.getCurrentSession().createCriteria(Student.class);
criteria2.setReadOnly(false);
criteria2.add(Restrictions.eq("id", "ID12345"));
result = criteria2.list();
Student abc2 = result.get(0);
abc2.setFirstname("BBB");
return "testing";
}
如上面的代码,它的 criteria
的 setReadOnly
为 true,因此 firstName
不会是 AAA
(在数据库中),但它已将 criteria2
的 setReadOnly
重置为 false,为什么 firstname
没有变成 BBB
(在数据库中)?
最佳答案
好吧,经过一段时间的研究,我终于找到了原因。
当第一个查询加载对象时,hibernate 将该对象放入持久上下文中并将该对象标记为只读
。这意味着该对象最终不会被刷新。
在第二次调用加载对象时,hibernate 在持久上下文中获取对象,而不是再次调用数据库,因为获取是基于主键的。由于它是从持久上下文加载的,因此它仍处于只读
状态。
为了让对象再次恢复为可刷新状态,我们可以使用setReadOnly(ObjectEntity, boolean readOnly)
来设置对象的readOnly
。
关于java - Hibernate Criteria setReadOnly 不适用于第二个查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39217751/
有没有办法将 radioGroup 设置为只读。我试过disabled: true,但这会在radioGroup上创建一个掩码,这使得它几乎不可读。关于如何将 extjs radioGroup 设置为
我正在使用 setReadOnly 方法将我的应用程序目录设置为“只读”存储在我的 SD 卡上。然而,即使我在 list 中为应用程序提供了 android.permission.WRITE_EXTE
我在使用 JDBC 设置与 PostgreSQL 数据库的只读连接时遇到问题。 我正在创建一个加载查询以从文件执行的应用程序,我只想执行 SELECT(只读)查询。对将运行应用程序的用户设置权限不是一
我有带有 Hibernate 框架(无 spring)的 Java 应用程序连接到 MySQL DB,通过 c3p0 管理连接池 我尝试将我的应用程序配置为从从属数据库读取并写入主数据库,我在某种程度
@RequestMapping("/testing") @Transactional public String testing(HttpServletRequest request,
我已经设法在 QPlainTextEdit 上接受放置事件: class PlainTextEdit : public QPlainTextEdit { public: PlainTextEd
package com.studytrails.tutorials.springremotingrmiserver; import java.lang.Object;
我用 @Transactional 注释了我的服务方法readonly=true . 因为那个 spring/hibernate 没有调用 jdbc 连接驱动程序的 setReadonly 方法。我能
我想这样做并没有特别的原因,更多的是因为我了解这些东西是如何工作的。 我有一个从 CWnd 派生的编辑框。我们称它为 m_edtBox。当我调用 m_edtBox.EnableWindow(FALSE
我试图在实例完全加载后将我的 CKEditor 实例设置为“只读”,但我收到 Javascript 错误:无法调用 null 的方法“setReadOnly”。当我深入研究它时,错误来自 ckedit
我正在为一个不太流行的 mmorpg 游戏编写一个 server-emu 软件,我正在使用 mysql connector for c++ 连接我的数据库。在我重新安装 Windows(和我的整个开发
我是一名优秀的程序员,十分优秀!