如何在Hibernate中实现触发器

18

我希望在Hibernate中实现类似于触发器的功能。

我的需求是:当表格中某一列达到特定值时,在另一个表格中插入一行或更新其他表格。

我该如何在Hibernate中实现此功能?

1个回答

26

相关内容见第14章拦截器和事件

例如,您可以拦截post-update事件。

然而,将事件系统用于业务操作可能不是最佳选择(它们最适合用于基础设施问题)。您应该使用更高级别的层来处理此类操作。


2
嘿,你能否详细说明为什么在这种情况下使用事件系统可能不是一个好主意?我是否没有看到问题? - Juzer Arsiwala
6
@Juzer 这只是被认为是良好的实践。你的数据层应该简单且无用,而你的服务层应该完成大部分工作。响应事件创建新数据是服务层的任务,而不是数据层的任务(即使在数据层中更容易实现)。 - Sean Patrick Floyd
时间戳怎么处理,比如像这个问题I'm asking here?是使用事件系统还是拦截器? - Stefan Falk
有没有一种方法可以拦截或监听saveAll(List..)方法的列表? - Jonathan JOhx
1
@JonathanJohx 我建议你把这个问题单独提出来问。这是一篇8年前的答案,而且我已经有5年没有使用NHibernate了。 - Diego Mijelshon
@DiegoMijelshon,没关系,谢谢!希望您能回答这个问题https://stackoverflow.com/questions/53824506/how-to-implement-triggers-to-intercept-a-collection-in-hibernate,非常感谢。 - Jonathan JOhx

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接