【发布时间】:2017-12-22 14:05:21
【问题描述】:
我正在开发一个 Spring REST 服务(使用 Spring Data JPA)并且我的实体包含 java.util.UUID 类型的属性。我使用 MySQL 作为导致问题的数据库。到目前为止一切正常,除了 UUID 是查询一部分的存储库方法,例如:entityRepository.findByUuid(UUID uuid);
默认情况下,数据存储在二进制 (255) 列中。从存储库中获取 UUID 工作正常,唯一的问题是在查询中使用 UUID,例如在 findByUuid() 中。它总是告诉我它在数据库中找不到特定的 UUID。 MariaDB 也会出现同样的问题。
我的服务与 H2-Database 一起正常工作。知道为什么 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;
...
【问题讨论】:
-
您需要查看日志文件并调查 JPA 使用的 SQL 查询中的问题。尝试直接在 DB-client 中运行提取的查询。
-
你有没有提到这个post。可能会有帮助。
标签: java mysql spring hibernate spring-data-jpa