我正在使用spring、hibernate
。我需要当将状态更新为“A”时,事件在一天后执行。
我的问题是:如何从 Java 创建事件?
我一直在这样做:
Date endDate = cal.getTime();
Timestamp time = new Timestamp(endDate.getTime());
String sql = "CREATE EVENT EVENT_POLL ON SCHEDULE AT " + time +
" DO UPDATE POLL SET STATUS = 'F' WHERE ID = " + dto.getId();
System.out.println("SQL: " + sql);
springHibernateDao.getSession().createSQLQuery(sql).executeUpdate();
我收到此错误
:
ERROR: org.hibernate.engine.jdbc.spi.SqlExceptionHelper - No value specified for parameter 1
请帮忙!
最佳答案
据我所知这是不可能的。
另一种方法是从命令行创建以下结构的事件:
- 根据您的 hibernate 代码创建的内容创建一个每分钟/每小时等运行一次的事件,但该事件定期运行而不是只运行一次;
- 创建一个表格,在其中放置运行指令及其应运行的预定时间;
- 使用 hibernate 将指令插入到该表中;
- 让您的事件检查该表并从那里运行代码。
关于java - 如何从 hibernate 创建/调用 mysql 事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36460842/