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())