社区
Java EE
帖子详情
JPA设置entity实例的主键策略为identity,不提交事务,后台有insert语句,但是表中无记录,且主键自动递增了
只挣朝夕
2020-05-15 09:24:42
JPA设置entity实例的主键策略为identity,不提交事务为什么后台有Insert这条记录的语句,但是数据库表中查不到这条记录
奇怪的是重新执行一次插入的事务且提交到数据库,对应的记录主键值不连续。
这些记录都是之前就有的,这次因为没有提交所以没有查到主键为16的记录,但是后台会打出inset语句的日志,这是什么原因呢?
将commit放开,再执行一次
这次插入成功,数据库表能查到记录了,但是主键值不是16,而是17,上次插入的记录虽然没有插入成功却影响到了之后的记录,
这是什么原因?
...全文
45
回复
打赏
收藏
JPA设置entity实例的主键策略为identity,不提交事务,后台有insert语句,但是表中无记录,且主键自动递增了
JPA设置entity实例的主键策略为identity,不提交事务为什么后台有Insert这条记录的语句,但是数据库表中查不到这条记录 奇怪的是重新执行一次插入的事务且提交到数据库,对应的记录主键值不连续。 这些记录都是之前就有的,这次因为没有提交所以没有查到主键为16的记录,但是后台会打出inset语句的日志,这是什么原因呢? 将commit放开,再执行一次 这次插入成功,数据库表能查到记录了,但是主键值不是16,而是17,上次插入的记录虽然没有插入成功却影响到了之后的记录, 这是什么原因?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Spring Data
jpa
JPA
(Java Persistence API)意即Java持久化API,是Sun官方在JDK5.0后提出的Java持久化规范
JPA
的出现主要是为了简化持久层开发以及整合ORM技术,结束Hibernate、TopLink、JDO等ORM框架各自为营的局面。
JPA
是在吸收现有ORM框架的基础上发展而来,易于使用,伸缩性强。总的来说,
JPA
包括以下3方面的技术:ORM映射元数据: 支持XML和注解两种元数据的形式,元数据描述对象和表之间的映射关系API: 操作实体对象来执行CRUD操作查询语言: 通过面向对象而非面向数据库的查询语言(JPQL)查询数据,避免程序的SQL
语句
紧密耦合
JPA
注解及
主键
生成
策略
使用指南
JPA
注解及
主键
生成
策略
使用指南
转
JPA
实体注解与hibernate
主键
生成
策略
JPA
实体注解与hibernate
主键
生成
策略
用hibernate注解开发项目,对于
主键
的生成
策略
有些模糊,下面是从新浪网里面看到的一篇关于hibernate注解以及
主键
生成
策略
的文章,值得一看: 1. 实体标志: @
Entity
@Indexed(index="group") @Table(name="GROUP_LAYMOD") ...
JPA
@Id 和 @GeneratedValue 注解详解
@Id: @Id 标注用于声明一个实体类的属性映射为数据库的
主键
列。该属性通常置于属性声明
语句
之前,可与声明
语句
同行,也可写在单独行上。 @Id标注也可置于属性的getter方法之前。 @GeneratedValue: @GeneratedValue 用于标注
主键
的生成
策略
,通过strategy 属性指定。默认情况下,
JPA
自动
选择一个最适合底层数据库的
主键
生成
策略
:SqlServer对应
id
entity
,MySQL 对应 auto increment。 在javax.persistence.G...
JPA
实体标识的
自动
生成@ SequenceGenerator @GeneratedValue
JPA
实体标识的
自动
生成 数据的唯一性是所有应用程序非常基本的要求,由开发者或者用户来维护这种唯一性存在着较大的风险,因此,由系统
自动
产生唯一标识是一种常见的做法。Open
JPA
中支持四种不同的实体标识
自动
生成
策略
: 容器
自动
生成的实体标识; 使用数据库的
自动
增长字段生成实体标识; 根据数据库序列号(Sequence)技术生成实体标识; 使用数据库表的字段生成实体标识; 这四种方式各有优缺点,开发者可以根据实际情况进行选择。 可选择的注释 ...
Java EE
67,513
社区成员
225,878
社区内容
发帖
与我相关
我的任务
Java EE
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
复制链接
扫一扫
分享
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章