spring-data-jpa 相关问题

Spring Data - JPA是Spring Data伞形项目的一部分,可以轻松实现基于JPA的存储库

Spring Data:JPA 存储库 findAll() 返回 *Map 而不是 List?

我有一个 Spring Data JPA 存储库接口,如下所示: @存储库 公共接口 DBReportRepository 扩展 JpaRepository { 列表<

回答 5 投票 0

在Spring存储库@Query中使用@MappedSuperclass

我正在尝试为扩展我的基础存储库的所有存储库定义通用查询: @NoRepositoryBean 公共接口 DocumentRepository 扩展 JpaRepository 我正在尝试为扩展我的基本存储库的所有存储库定义通用查询: @NoRepositoryBean public interface DocumentRepository<T extends BaseDocument> extends JpaRepository<T, Long> { @Query(value = "FROM BaseDocument bd WHERE (bd.createdAt IS NULL OR :to IS NULL OR bd.createdAt < :to) AND (bd.deletedAt IS NULL OR :from IS NULL OR bd.deletedAt > :from)") Iterable<T> findAllActiveBetween(OffsetDateTime from, OffsetDateTime to); } @MappedSuperclass @Where(clause="deleted_at IS NULL") abstract public class BaseDocument { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; private OffsetDateTime createdAt; private OffsetDateTime deletedAt; } 有问题的部分是在@Query 中使用BaseDocument。 可以在所有子存储库中定义这样的方法而不重复吗? 当您使用@MappedSuperclass时,继承的类不共享可供选择的表,因此每个类都需要单独的查询。存储库的继承在这里无法帮助您。 如果您使用其他继承策略,例如联合多表继承,则可以从超类的表中进行选择,然后您可以使用java对象进行导航。如果您需要在查询中使用子类的属性,那么每个子类当然需要实现自己的查询。 @NoRepositoryBean public interface DocumentRepository<T extends BaseDocument> extends JpaRepository<T, Long> { @Query(value = "FROM BaseDocument bd WHERE (bd.createdAt IS NULL OR :to IS NULL OR bd.createdAt < :to) AND (bd.deletedAt IS NULL OR :from IS NULL OR bd.deletedAt > :from)") Iterable<T> findAllActiveBetween(OffsetDateTime from, OffsetDateTime to); } @Entity @Inheritance(strategy=InheritanceType.JOINED) @DiscriminatorColumn(name="BaseDocument_TYPE") @Table(name="BaseDocument") abstract public class BaseDocument { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; private OffsetDateTime createdAt; private OffsetDateTime deletedAt; } @Entity @DiscriminatorValue("TextDocument") @Table(name="TextDocument") public class TextDocument extends BaseDocument { private String text; } @Entity @DiscriminatorValue("AudioDocument") @Table(name="AudioDocument") public class AudioDocument extends BaseDocument { private byte [] audio; } 这可以通过 spel-expressions 实现,特别是 #{#entityName},它可在 spring-data-repositories 上使用,并扩展到存储库的域类型。 您需要做的就是将 BaseDocument 替换为 #{#entityName}。 @NoRepositoryBean public interface DocumentRepository<T extends BaseDocument> extends JpaRepository<T, Long> { @Query(value = "FROM #{#entityName} bd WHERE (bd.createdAt IS NULL OR :to IS NULL OR bd.createdAt < :to) AND (bd.deletedAt IS NULL OR :from IS NULL OR bd.deletedAt > :from)") Iterable<T> findAllActiveBetween(OffsetDateTime from, OffsetDateTime to); }

回答 2 投票 0

Spring JPA 具有嵌套关系,但只需要 1 个深度关系

我为 MainBranch 模型创建了 2 个深度关系,当我获得 MainBranch 时,它将获得 SubBranch 和 SubBranchRef。我只需要获取 MainBranch 和 SubBranch。对于这个问题我该怎么办? p...

回答 1 投票 0

Hibernate 6 错误:已注册副本:SqmBasicValuedSimplePath(completelyqualifiedclass.name)

尝试使用现有条件复制计数的 Critria 构建器时。在 Hibernate 6 中似乎出现以下错误,但在 Hibernate 5 中似乎同样有效。 引起的:java.lang.

回答 2 投票 0

Lombok @Builder 和 JPA 默认构造函数

我将 Lombok 项目与 Spring Data JPA 一起使用。 有什么方法可以将 Lombok @Builder 与 JPA 默认构造函数连接起来吗? 代码: @实体 @Builder 类人{ @ID @GenerateValue(

回答 9 投票 0

JPA:映射多对多关系引用了不正确的列名称

这个问题与我昨天问的上一个问题有关。 我在 Employee 和 SkillSet 表之间有多对多关系,每个关系都有附加列 numberOfYears

回答 1 投票 0

如何将两个存储库视为相同?

我的项目有以下两个存储库和一个服务类: @存储库 公共接口 FooRepository 扩展 JpaRepository {...} @存储库 公共接口 FooExtReposi...

回答 1 投票 0

为什么不用@Transactional我也能保存? [重复]

简化示例: @实体 公共类 Foo { @ID @GenerateValue(策略 = GenerationType.IDENTITY) 私有整数 ID; 私有字符串栏; // 获取器 + 设置器 } 公共接口

回答 1 投票 0

如何为枚举编写 DTO 投影查询并将其映射到 springboot JPA 中的字符串

我有一个带有枚举的实体类,如下所示 包 com.expensetracker.api.domain; 导入 jakarta.persistence.*; 导入lombok.AllArgsConstructor; 导入 lombok.Getter; 导入 lombok.NoArgsConstruc...

回答 1 投票 0

Java Spring Boot 中的事务角色

我正在使用Java Spring Boot。在以下服务函数中: @覆盖 公共 QuestionDTO updateQuestion(长 id, QuestionDTO updateData) { 问题问题 = QuestionRepository.findById(id).

回答 1 投票 0

Spring JPA - 如何从 PostGis 数据库读取 CIRCULARSTRING?

PostGis 数据库中有一个 CircularString (EWKT) 几何图形。它是通过以下 SQL 插入的: INSERT INTO objectwithgeometries (id,geometry,remarks) VALUES ( 41, ST_SetSRID( ST_GeomFromEWKT( 'CIRCULARST...

回答 1 投票 0

使用 Spring Data Jpa 保存相反实体时集合未更新

我有两个处于一对多关系的实体: 父实体: @OneToMany(mappedBy = "父") 公共列表 getChildren() 子实体: @ManyToOne @JoinColumn(名称 = "

回答 1 投票 0

使用@Transactional 注解有必要吗?弹簧靴

所以我是 Spring 新手,目前对 @Transactional Annotation 感到困惑,我已经阅读了很多关于这个主题的问题和答案,但似乎我仍然不明白。 这是我的问题...

回答 1 投票 0

org.springframework.core.convert.ConverterNotFoundException i spring-data jpa

我有这样的疑问: @Query(value = "选择 t1.* FROM west_en AS t1 " + “加入(从western_en中选择id”+ “ORDER BY RAND() LIMIT 10) as t2 ON t1.id=t2.i...

回答 1 投票 0

使用Hibernate的正确方法是什么,使用实体生成表还是使用db sql文件生成表

我正在开发有 10-15 个表的应用程序,我将使用 Hibernate 进行数据库访问。 现在我的问题是,如何为这样的应用程序创建数据库? 我应该让hiber...

回答 1 投票 0

在 spring-data 中自动发现本机 SQL 查询期间遇到重复的 sql 别名 [id]

我有这样的疑问: @Query(value = "SELECT * FROM t_western_es AS t1 JOIN (SELECT id FROM t_western_es " + “ORDER BY RAND() LIMIT 10) as t2 ON t1.id=t2.id”,nativeQuery =...

回答 1 投票 0

使用 Spring Boot 3 的本机映像出现“IllegalArgumentException:不是托管类型:MyEntity”问题

我的应用程序配置为支持多租户,因此我使用 LocalContainerEntityManagerFactoryBean 和 PlatformTransactionManage 在 MultiTenancyConfig 类中配置数据源...

回答 1 投票 0

当我清空我的购物车实体订单清空时

@服务 公共类PurchaseServiceImpl实现PurchaseService { @Autowired 私人购买存储库购买存储库; @Autowired 私人客户服务客户服务; @Autowired 公关...

回答 1 投票 0

将 hsqldb 控制台显示为 H2,Spring Boot 3

我正在尝试像内存数据库一样使用hsqldb。 在我的 build.gradle 文件中,您可以看到版本: 实现组:'org.hsqldb',名称:'hsqldb',版本:'2.7.2' 在我的 application.yml 文件中,我

回答 1 投票 0

为什么双向映射不能从关系双方获取价值?

所以,假设我有两个实体: @实体 @数据 @AllArgsConstructor @NoArgs构造函数 @Builder //@ToString(排除=“课程材料”) 公开课课程{ @ID @SequenceGenerator(

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.