oracle – 在只读同义词上革新时禁用Hibernate自动更新
我有一个表和两个具有沟通表的数据库,可是一个是另一个的标记链接,只应承在此表上读取. 我已行使Hibernate将表映射到Java,并行使spring将实体打点器的数据源配置为基于某些输入前提的两个数据库之一. 当我毗连到第二个数据库时,我只挪用只读操纵(选择),但好像Hibernate实行将某些内容刷回数据库,而且无法在此视图上奉告更新. 怎样仅针对第二个数据源禁用此更新并保持第一个数据源正常? 更新: at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321) at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:50) at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1027) at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:365) at org.hibernate.ejb.AbstractEntityManagerImpl$1.beforeCompletion(AbstractEntityManagerImpl.java:504) ... 55 more 这与hibernate.transaction.flush_before_completion属性有关吗?我可觉得第二个数据源将其配置为false吗? 办理要领很也许你的实体在从数据库加载的那一刻变得“脏”,而Hibernate以为它必要存储变动.假如您的会见器(get和set要领)没有返回由Hibernate配置的完全沟通的值或引用,则会产生这种环境.在我们的代码中,这产生在列表中,开拓职员建设了新的列表实例,由于他们不喜好他们在setter中得到的范例. 假如您不想变动代码,请将映射变动为字段会见. 您还可以通过在会话中将FlushMode配置为never来阻止Hibernate存储变动,但这只会潜匿在其他环境下仍会产生的现实题目,这将导致不须要的更新. (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |