spring-data-jpa 相关问题

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

@在@Id 字段上进行转换

我正在努力 @ID @Column(名称=“MY_ID_FIELD”) @Convert(转换器 = IdConverter.class) 私人长ID; IdConverter 是: @转换器 公共类 IdConverter 实现 AttributeConverter 我正在努力 @Id @Column(name = "MY_ID_FIELD") @Convert(converter = IdConverter.class) private Long id; IdConverter 是: @Converter public class IdConverter implements AttributeConverter<Long, BigDecimal> { @Override public BigDecimal convertToDatabaseColumn(Long attribute) { return BigDecimal.valueOf(attribute); } @Override public Long convertToEntityAttribute(BigDecimal dbData) { return dbData.longValue(); } } 转换器会将 BigDecimal (Hibernate 期望的属性字段类型)映射到 Long,因为在 sql server 数据库中 id 列类型是数字。 我正在使用 Spring Data Jpa,我的存储库正在使用 Long,正如我所期望的那样 @Repository public interface CityRepository extends JpaRepository<City, Long> { } 您知道它为什么不起作用吗? @Id 和 @Convert 不能一起使用。使用 @IdClass 可以解决这个问题。您只需将 @Convert 移至 @IdClass。 @Entity @IdClass(PK.class) public class YourClass { @Id private Long id; ... } public class PK implements Serializable { @Column(name = "MY_ID_FIELD") @Convert(converter = IdConverter.class) private Long id; } 需要强调的是,实体必须只包含 @Id 注释而不能包含其他内容,所有其他 JPA 属性(例如 @Column 和 @Convert )都需要移至 PK 类。 如果其他人遇到与我相同的问题,除了 @Column 之外,您还have 在 @IdClass 上添加 @Converter 注释才能正常工作(而不是依赖命名策略)。 // doesn't work public class PK implements Serializable { @Convert(converter = IdConverter.class) private Long id; } // works public class PK implements Serializable { @Column(name = "ID") @Convert(converter = IdConverter.class) private Long id; } 使用 EclipseLink 2.7.6 我也遇到了同样的问题。 我的解决方案是: 实体类: @Entity(名称=“xxx”) 公共类 xxx 实现可序列化 { @EmbeddedId 私人 XxxPk pk; ... } ID类别: @Embeddable 公共类 XxxPk 实现可序列化 { @Column(名称 = "A_TYPE") @Convert(转换器 = ATypeAttributeConverter.class) 私有 AType aTypeAttribute; ... } 转换器: 导入 javax.persistence.AttributeConverter; 导入 javax.persistence.Converter; @转换器 公共类 ATypeAttributeConverter 实现 AttributeConverter { @覆盖 公共字符串convertToDatabaseColumn(AType agrType){...} @覆盖 公共AType ConvertToEntityAttribute(字符串代码){...} } 枚举: 公共枚举 AType { E1、E2、……; ... } 我也用 EclipseLink-Converter (org.eclipse.persistence.annotations.Converter) 检查过它,但没有成功。

回答 3 投票 0

Spring Boot Jpa 为空过滤器不起作用

我的 PostgreSQL 数据库中有一个事务表。我想通过以下属性过滤它: 年 月 天 如果其中之一为空,那么我想将其从 q 中完全删除...

回答 1 投票 0

Spring Data Jpa 应用先分页还是先排序?

PageRequest 可分页 = PageRequest.of(current_page + 1, paginacaoSize, Sort.by("card_index").ascending()); 上面的语句会不会查询页面current_page + 1,然后对页面进行排序

回答 1 投票 0

多个数据源,无法写入 JSON:无法延迟初始化角色集合:无法初始化代理 - 无会话

我尝试设置多个数据源,其中包含 2 个数据源 datasource1,用@Primary注释。 数据源2. 然后使用findAll()查询数据(属于@Primary数据源,

回答 1 投票 0

合理的依赖移除吗? [重复]

我通过spring jpa和kotlin开发了项目。 我的同事进行了 codereview,想要删除 spring jpa 依赖项。 这是同事代码。 接口 AJpaRepository :JpaRepository,ARepos...

回答 1 投票 0

它是致命的死亡钻石吗?这是合理的依赖消除吗?

我通过spring jpa和kotlin开发了项目。 我的同事进行了 codereview,想要删除 spring jpa 依赖项。 这是同事代码。 接口 AJpaRepository :JpaRepository,ARepos...

回答 1 投票 0

从 Spring Boot 3.0 迁移到 3.2 导致将对象插入 Oracle 数据库时出现问题

最近,我们从 Spring Boot 3.0 迁移到 3.2,失去了将对象插入 Oracle 数据库的能力。以下是争论的对象: @实体 @Table(schema="S1",...

回答 1 投票 0

在特定日期自动更新数据库中的列值 Spring Data JPA

我有一个Android应用程序的Spring Web应用程序,它实现了一个用于列出拍卖、投标、审查客户等的平台。 表“Item”(MySQL) 有一个名为“

回答 1 投票 0

Spring JPA 相当于 MySql 行构造函数

MySql 的新版本具有行构造函数表达式的概念,它允许按由与元组列表中给定条目之一匹配的列子集组成的条件进行查询...

回答 1 投票 0

如何在 Spring 中选择性禁用 OSIV 过滤器

如何在 Spring 中选择性地禁用 OSIV 过滤器以逐步迁移大型应用程序? 我知道 Spring Boot 中有一个属性可以全局禁用它(spring.jpa.open-in-view),但我想...

回答 1 投票 0

Spring data JPA 分页内存使用情况

假设我想从数据库中获取数据并转换它们并在 UI 中显示 正如许多人所说,进行分页的主要原因并不是因为只显示几个条目才有意义......

回答 1 投票 0

在 Spring Boot 3.3.x 中使用复合键测试失败,但在 Spring Boot 3.2.x 中通过

我遇到一个问题,涉及 Spring Data JPA 中的组合键的测试在 Spring Boot 3.2.0 中通过,但在 Spring Boot 3.3.2 中失败。 问题描述: 我有一个 ProductRating 条目...

回答 1 投票 0

如何在JPA中动态设置锁定

我有下面的简单例子。我希望 JPA 方法 findByName 动态设置锁定。在changeUserNames方法中我希望它设置一个锁。在 getUsers 方法中,我不希望它设置锁定。我怎样才能

回答 1 投票 0

从相同对象的列表中获取值。 Java SpringBoot JPA 中的 Jsonb postgreSQL

我有列类型 Jsonb postgreSQL。我存储了相同对象的列表,键相同,值不同。如何过滤数据? JSON 示例: [ {“名称”:“合同标题”,“...

回答 1 投票 0

如何测试JPA规范

我有一个构建器,可以根据过滤器创建 JPA 规范。如何测试构建器?比较规格时,assertEquals 方法总是返回 false... 我已经尝试打电话了

回答 2 投票 0

Spring data jpa,外部化原生查询

我使用 Spring data jpa 来执行本机查询,这是示例。 @Query(value = "从客户中选择姓名", nativeQuery = true) 公共列表 findNameNative() ; 现在,由于...

回答 4 投票 0

Spring JPA过滤与设置

java 开发新手。使用 Spring Boot 和 Spring JPA 开发 Web 应用程序。 我们有以下数据模型。 学生 - ID、姓名、年级 课程 - ID、姓名 学生课程 - ID、学生 ID、课程 ID、

回答 1 投票 0

使用 Spring 数据和 Java 重命名 Mongodb 集合中的字段

我有一个包含多个字段的集合,想通过Java程序更新这两个字段名称。例如 {_id:ObjectId(xxxxxxxxxxxx),字段1:“值1”,字段2:“值...

回答 2 投票 0

Spring Boot/Data:增删改查操作的通用服务类

假设我想创建一个 REST API,它对多个实体执行基本的 CRUD 操作。为此,我创建了通用接口: 公共接口 CrudService{ //通用 CRUD m...

回答 2 投票 0

Spring Data JPA - 表达了不满足的依赖关系:创建名称在 @EnableJpaRepositories 声明的 App 中定义的 bean 时出错:不是托管类型:

我想将 Spring Boot 环境与数据库连接。 我遵循了教程:https://www.youtube.com/watch?v=8SGI_XS5OPw 我有一个 MySQL 数据库,只想向我的数据库添加一些测试数据...

回答 2 投票 0

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