MySQL 8 @Enumerated (Enumtype.String) Java Enum Hibernate Native Abfrage Param Problem Upgrade von MySQL 5.7Java

Java-Forum
Anonymous
 MySQL 8 @Enumerated (Enumtype.String) Java Enum Hibernate Native Abfrage Param Problem Upgrade von MySQL 5.7

Post by Anonymous »

Ich habe ein Problem mit @Enumerated (Enumtype.String) Enum als Param an native Abfrage nach MySQL -Upgrade von 5.7 auf 8.0.34.

Code: Select all

public enum MyEnum {
A,B;
}

@Entity
@Audited
@Table(name = "my_table")
public class MyTableModel {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id", unique = true)
private Long id;

@Column(name = "myenum")
@NotNull
@Enumerated(EnumType.STRING)
private MyEnum myEnum;
.....
< /code>
Das [url=viewtopic.php?t=26065]Problem[/url] tritt aufQuery query = entityManager.createNativeQuery("UPDATE my_table up set  up.myenum=:myenum WHERE up.id=:id ");
query.setParameter("id", id);
query.setParameter("myenum", MyEnum.B);
query.executeUpdate();
< /code>
Ich war zuvor ein Arbeitscode in MySQL 5.7 PIOR -Upgrade auf 8.0.34 < /p>
Ich habe oben mit wenigen Diffrent Hibernate /Spring -Versionen getestet:
Hibernate 4.2.21 und Spring 4.3.13 folgende Fehler: < /p>
Caused by: java.sql.SQLException: Incorrect string value: '\xAC\xED\x00\x05~r...' for column     'myenum' at row 1
< /code>
Hibernate 5.4.3 und Spring 5.3.27 Nachfolger:java.lang.IllegalArgumentException: No enum constant com.example.MyEnum.’~rFcom.example.MyEnumnxrjava.lang.EnumxptA
at java.base/java.lang.Enum.valueOf(Enum.java:240)
at org.hibernate.type.descriptor.java.EnumJavaTypeDescriptor.fromName(EnumJavaTypeDescriptor.java:84)

< /code>
mache ich hier mit Enum etwas falsch? Ich bin nicht in der Lage, die ältere Version von Hibernate/Spring zu aktualisieren, und ich muss einen Weg finden, um sie zu beheben.query.setParameter("myenum", MyEnum.B.name())
Ich überprüfe die Datenbank/Spaltencodierung, ändern Sie den Dialekt in den neuesten verfügbaren Hibernate -Versionen, aktualisiert den MySQL -Connector auf einen der neuesten 8.0.15. Wie oben habe ich versucht, Enum in Plain String mit name () manuell zu wechseln, und das hat wie erwartet funktioniert.>

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post