SpringDataJpa是如何让oracle的表id自增的?
用过oracle的都知道,oracle要做自增id,一般都是用序列来实现。
我在实体上只标记了@Id,没有标记到其他额外的注解了,本来以为save的时候会出错,结果居然帮我自增id了。
spring-data-jpa究竟在哪里维护了一个自增记录的?
有相关官方文档解析吗?求大神指点。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
@GeneratedValue
允许持久性实现自动为标识字段分配唯一值通常是很方便的。JPA 包含此目的的 GeneratedValue 注解。它具有以下属性:
GenerationType 策略: 枚举值, 指定如何自动生成字段值。GenerationType 枚举具有以下值:
GeneratorType.AUTO: 默认值。为字段分配生成的值, 由JPA 供应商决定实现(如hibernate)。
GenerationType.IDENTITY: 数据库将在插入时分配标识值,如MySQL的auto_increment。
GenerationType.SEQUENCE: 使用数据库序列生成字段值,如oracle。
GenerationType.TABLE: 使用序列表生成字段值。如下例
至于你说的采用哪种方式还是和jpa的实现有关, 你可以看看这个链接
https://docs.spring.io/spring...
但因为底层还是hibernate实现,你可以参考一下hibernate的实现
http://docs.jboss.org/hiberna...