gpt4 book ai didi

java - 使用 Hibernate 时,findByUuid() 在 MySQL-DB 中不起作用

转载 作者:行者123 更新时间:2023-11-29 03:20:59 25 4
gpt4 key购买 nike

我正在开发一个 Spring REST 服务(使用 Spring Data JPA),我的实体包含 java.util.UUID 类型的属性。我正在使用 MySQL 作为导致问题的数据库。到目前为止一切正常,除了 UUID 是查询的一部分的存储库方法,例如:entityRepository.findByUuid(UUID uuid);

默认情况下,数据存储在二进制 (255) 列中。从存储库中获取 UUID 工作正常,唯一的问题是在查询中使用 UUID,例如在 findByUuid() 中。它总是告诉我它在数据库中找不到特定的 UUID。 MariaDB 也会出现同样的问题。

我的服务与 H2 数据库一起正常工作。知道为什么 MySQL(和 MariaDB)有这个问题吗?

数据库配置:

spring.datasource.url=jdbc:mysql://localhost/abc123
spring.datasource.username=alfkmakfaf
spring.datasource.password=aafkmafmlaf
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.jpa.database=mysql
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect

实体中的 UUID

@Entity
public class Thema {
// without any annotations, works fine with H2 Database
private UUID uuid;
...

最佳答案

如果我在模型中添加这个附加符号(将二进制更改为字符串列)开始工作,我会遇到二进制 UUID(默认列是二进制类型)的问题

@Type(type="org.hibernate.type.UUIDCharType")

关于java - 使用 Hibernate 时,findByUuid() 在 MySQL-DB 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45154336/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com