Ich entwickle einen Spring-REST-Service (mit Spring Data JPA) und meine Entität enthält Eigenschaften des Typs java.util.UUID. Ich verwende MySQL als eine Datenbank, die Probleme verursacht. Bis auf Repository-Methoden, bei denen eine UUID Teil einer Abfrage ist, funktioniert alles einwandfrei, z. B .: entityRepository.findByUuid(UUID uuid);
findByUuid() funktioniert nicht in MySQL-DB bei Verwendung von Hibernate
Die Daten werden standardmäßig in einer binären (255) -Spalte gespeichert. Holen Sie die UUID aus dem Repository funktioniert gut, das einzige Problem ist die Verwendung einer UUID in Abfragen, wie in findByUuid(). Es sagt mir immer, dass es eine bestimmte UUID in der Datenbank nicht finden kann. Das gleiche Problem tritt bei MariaDB auf.
Mein Dienst funktioniert ordnungsgemäß mit H2-Datenbank. Irgendeine Idee, warum MySQL (und MariaDB) dieses Problem hat?
DB-Config:
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 in Entitys
@Entity
public class Thema {
// without any annotations, works fine with H2 Database
private UUID uuid;
...
Sie müssen die Protokolldatei und untersuchen das Problem in SQL-Abfrage sehen, die von PPV verwendet wird. Versuchen Sie, die extrahierte Abfrage direkt im DB-Client auszuführen. –
haben Sie diese [post] verwiesen (https://stackoverflow.com/questions/18350154/findbyuuid-using-spring-datas-jpa-repository). Möglicherweise wird es hilfreich sein. –