如何在使用jpa的show_sql属性时打印序列号

问题描述 投票:0回答:2

我希望在使用jpa将对象保存到db时看到序列号。

码:

@Id
@GeneratedValue(strategy = GenerationType.AUTO, generator = "SEQ")
@SequenceGenerator(name = "SEQ", sequenceName = "Temp_SEQ")

属性:

logging.level.org.hibernate.SQL=DEBUG
logging.level.org.hibernate.type=TRACE

我看到输出如下,

insert into employee (emp_number, acquire, reason) values (null, ?, ?)
2017-12-12 14:36:20.634 TRACE 21048 --- [nio-8080-exec-8] o.h.type.descriptor.sql.BasicBinder      : binding parameter [1] as [VARCHAR] - [YES]
2017-12-12 14:36:20.635 TRACE 21048 --- [nio-8080-exec-8] o.h.type.descriptor.sql.BasicBinder      : binding parameter [2] as [VARCHAR] - [asdf]

但我也期待序列号,

insert into case_selection (case_number, acquire, reason) values (null, ?, ?)
binding parameter [1] as [Long] - [1]
binding parameter [1] as [VARCHAR] - [YES]
binding parameter [1] as [VARCHAR] - [asdf]

无论如何我可以在休眠或JPA的情况下打印序列号吗?

java spring hibernate jpa
2个回答
0
投票

我实际上以不同的方式找到了解决方案。

这是来自数据库。

SELECT seqname.CURRVAL FROM dual

此查询为我们提供了当前值。

@Priho:谢谢你的帮助。


0
投票

你没有显示代码。

(首先是旁边:你好像在做INSERT INTO T(pk, ...) VALUES(NULL, ...);我从来没有这样做,列出生成的主键。)

我使用存储库来保存新实体(INSERT),然后返回更新的实体。有点像:

assert entity.id = null;
entity = repository.save(entity);
assert entity.id != null;
© www.soinside.com 2019 - 2024. All rights reserved.