Portál AbcLinuxu, 3. května 2025 11:20

Dotaz: Problem s enumem ve Hibernate+Spring

30.5.2022 15:41 Jouda
Problem s enumem ve Hibernate+Spring
Přečteno: 449×
Odpovědět | Admin
Ahoj, zacinam se Springem a dostal jsem se do problemu u mapovani/dotazovani na enum. DB je mariadb 10.6.7, dialekt org.hibernate.dialect.MariaDB106Dialect, hibernate 5.6

Mam enum
public enum Sport { RUN, BIKE, SWIM, DUATLON, TRIATLON; }
A v entite
@Enumerated(EnumType.STRING)
@Column(name = "Sport", nullable = false)
private Sport sport;
Kdyz udelam "nenativni" query, ktera selektuje dle tohoto enumu, tak dostanu:
2022-05-30 15:05:34.993 TRACE 41454 --- [nio-8080-exec-3] o.h.type.descriptor.sql.BasicBinder      : binding parameter [1] as [INTEGER] - [2022]
2022-05-30 15:05:34.996 TRACE 41454 --- [nio-8080-exec-3] o.h.type.descriptor.sql.BasicBinder      : binding parameter [2] as [VARBINARY] - [SWIM]
2022-05-30 15:05:35.057  WARN 41454 --- [nio-8080-exec-3] o.m.jdbc.message.server.ErrorPacket      : Error: 1300-HY000: Invalid utf8mb4 character string: 'ACED00'
2022-05-30 15:05:35.058  WARN 41454 --- [nio-8080-exec-3] o.h.engine.jdbc.spi.SqlExceptionHelper   : SQL Error: 1300, SQLState: HY000
2022-05-30 15:05:35.058 ERROR 41454 --- [nio-8080-exec-3] o.h.engine.jdbc.spi.SqlExceptionHelper   : (conn=77) Invalid utf8mb4 character string: 'ACED00'
Problem je IMHO binding VARBINARY, protoze v DB je sloupec vytvoren jaka VARCHAR(255). Prelozena query v cmd klientu po dopneni parametru funguje. Co s tim?

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Řešení 1× (Luboš Doležel (Doli))
30.5.2022 16:24 Jouda
Rozbalit Rozbalit vše Re: Problem s enumem ve Hibernate+Spring
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tak vyreseno. Ve zdrojove query jsem mel napsano:
Sport=:sport
spravne melo byt:
r.sport=:sport

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.