【发布时间】:2017-08-31 09:18:13
【问题描述】:
我有一个表格,里面有一个导入文件。
现在我需要声明相关实体AUDIT,我们尝试创建一个用于在审计表中插入 revinfo 的过程,通过这种方式:
从数据库中提取最大 REV 和最大 RevTS
@Query(value="select max(rev) from revinfo",nativeQuery=true)
int findMaxRev();
@Query(value="select max(revtstmp) from revinfo",nativeQuery=true)
Long findMaxrevtstmp();
在这个数据上我们添加一个 +1 值,并尝试在这个查询中设置它:
@Query(value="insert into revinfo (`rev`, `revtstmp`) values (:rev, :revtstmp)", nativeQuery=true)
void addRevInfo(@Param("rev") int rev, @Param("revtstmp")Long revtstmp);
@Query(value="insert into entity_h (id, audit_revision, action_type, audit_revision_end, audit_revision_end_ts ) "
+ "values (:id, :rev, 0, null, '2017-08-31 10:45:37')", nativeQuery=true)
void addEnvers(@Param("id")long id, @Param("rev")int rev);
但是当我们运行 addRevInfo 查询时,我们得到这个错误:
`ERROR: org.hibernate.engine.jdbc.spi.SqlExceptionHelper - Can not issue data manipulation statements with executeQuery()`.
如果我们直接在 MySQLWorkbench 中运行同样的查询,插入运行没有问题。
怎么了?
【问题讨论】:
标签: java mysql spring spring-data-jpa hibernate-envers