【问题标题】:Trigger Hibernate and Java App触发 Hibernate 和 Java 应用程序
【发布时间】:2014-01-18 17:13:29
【问题描述】:

我正在实现一个使用 Hibernate 进行数据库管理的 Java 应用程序 (mySQL 6.0) 我的数据库表有一个存储未来日期的列,例如 09/09/2014。 所以,我会找到一种方法,当那天是当天,我必须在那张桌子上做一些事情(也许在另一张桌子上)。 我正在考虑使用触发器来做到这一点,但不幸的是我不知道怎么做。 使用 Hibernate 可以做到这一点吗?显然,表更改后,我的应用程序中的数据应该更新。 我愿意任何解决方案,Java 和 Hibernate 双方。

【问题讨论】:

    标签: java mysql database hibernate triggers


    【解决方案1】:

    如果您正在开发 Java EE 应用程序(即:由 Wildfly/JBoss AS 等应用程序服务器提供服务的 Web 应用程序),那么您可以使用 EJB 调度程序。这允许您触发业务类,然后您可以使用它来获取 EntityManager 实例并操作您想要/需要的数据。更多信息在这里:http://docs.oracle.com/javaee/6/tutorial/doc/bnboy.html

    【讨论】:

    • 是的,我正在开发一个 JavaEE 应用程序,抱歉我不清楚。是的,我也在使用 Spring。那么,这样,在更新后,我会自动获取更新数据,还是我需要在我的服务器应用程序中刷新数据?此外,您为什么不建议触发?在这种情况下没有意义吗?
    • 您的数据在应用程序上将是“新鲜的”。使用触发器的缺点是它可能被认为是业务逻辑的一部分,因此应该与应用程序代码一起放置。但当然,在某些情况下触发器更好(例如,当您需要处理大量数据时,在数据库“外部”进行操作会太慢)。
    【解决方案2】:

    我建议你使用Quarts Scheduler。在指定时间触发一些活动的Java API。

    您可以指定何时启动调度程序。在某些函数中,您可以获取数据库的值,Quartz 将等待那个时间,然后它将启动您指定的进程。

    Here you can see some samples and documents.

    您可以下载 API,或通过 maven 获得它。

    如果您使用的是 Spring,那么也可以使用 Quartz。

    【讨论】:

    • 那么,这样,在更新后,我会自动获取更新数据,感谢hibernate,还是我需要在我的服务器应用程序中刷新数据?此外,您为什么不建议触发?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-16
    • 2010-09-27
    • 1970-01-01
    • 1970-01-01
    • 2022-11-24
    • 2011-01-11
    • 1970-01-01
    相关资源
    最近更新 更多