2014-05-07 41 views
0

有没有办法在Liferay 6中为所有实体关闭在Glassfish中运行的Spring自动提交?Liferay Spring set autocommit false

我需要这个用于保存审计目的旧模型的副本。我试图自动提交=假的JDBC URL和设置hibernate.connection.autocommit =假在portal-ext.properties

public <T extends BaseModel<T>> T auditUpdate(final T model, final BasePersistence<T> persistence) 

T oldModel = null; 

try { 
    oldModel = persistence.findByPrimaryKey(model.getPrimaryKeyObj()); 
} catch (final NoSuchModelException ignored) { 
    // This is an insert 
} 

而且oldModel == model返回true

回答

0

我不知道实际预期结果,但请记住,Liferay会执行相当多的缓存操作 - 因此您可能会认为您正在访问数据库,但实际上您只是从缓存中获取对象。因此,还有更多的关卡,我不确定你是否在正确的水平上进行攻击。 Liferay(EE)有一个您可能想要使用的Audit插件,您也可以拥有ModelListeners或使用审核功能覆盖服务实现。你应该使用什么取决于你想做多少审计。

请记住,太多的审计可以轻松地为您的门户增加巨大的性能负担 - 因此您应该仔细选择(并限制)审计的功能。如果您使用通用的“全部审计”方法,则很容易为每个鼠标点击产生数兆字节的审计输出。

相关问题