Spring Data Jpa新增和更新的问题。

Spring Data Jpa新增和更新的问题。,第1张

根据ID做新增或者update,主键上打@Id。

一 Spring Data Jpa的更新删除:

JPA可以看作标准化的Hibernate。虽然规定了基本的缓存接口,但是具体实现还是要看具体产品。

可以通过Hibernate进行了解。更新删除的时候JPA都需要先维护缓存才可以删除。如果你要直接删除,必须自己写EQL语句。

二  spring data jpa 怎么使用序列:

1  JPA - 简化创建 JPA 数据访问层和跨存储的持久层功能。

2 Hadoop - 基于 Spring 的 Hadoop 作业配置和一个 POJO 编程模型的 MapReduce 作业。

3 Key-Value  - 集成了 Redis 和 Riak ,提供多个常用场景下的简单封装。

4  Document - 集成文档数据库:CouchDB 和 MongoDB 并提供基本的配置映射和资料库支持。

5 Graph - 集成 Neo4j 提供强大的基于 POJO 的编程模型。

6 Graph Roo AddOn - Roo support for Neo4j。

JDBC Extensions - 支持 Oracle RAD、高级队列和高级数据类型

你这个findone(id)是用自己的@Query注解的jpql语句?

如果不是,方法应该是findOne(Interger id)才对,可但是你这个实体类哪里有id的字段;

你也可以试试findBy字段这种方式

另外注意下几个Repository接口的细微区别,会不会问题出在接口选择上面!

两种方式:

方式1:假设Bean的属性xxx为主键,则在getXxx() 前添加以下注解

@Id

@SequenceGenerator(name="名称A", sequenceName="库中已存在的sequence名称",allocationSize=递增值)

@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="名称A")

方式2:假设Bean的属性xxx为主键,则在getXxx() 前添加以下注解

@Id

@TableGenerator(name="名称A",allocationSize=递增值)//若不指定递增值,则生成的主键值不一定连续

@GeneratedValue(strategy=GenerationType.TABLE, generator="名称A")

总结:方式1:针对Oracle效率略高,但需要手工创建sequence才能使用。

方式2:不依赖数据库,可移植性好,但相比方式1,效率略低。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11774514.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存