Code: Select all
org.hibernate.query.QueryTypeMismatchException: Specified result type
[com.mvc.frontend.enteties.Customer] did not match Query selection type
[com.mvc.frontend.enteties.Customer] - multiple selections: use Tuple or array
< /code>
Beachten Sie, dass es sich um den gleichen Typ handelt. Wenn ich, wie aus der Ausnahme vorgeschlagen, den Ergebnistyp in ein Array ändere, wirft dies, wie erwartet, die gleiche Nichtübereinstimmung aus, aber mit tatsächlich nicht übereinstimmenden Typen. < /P>
[[Lcom.mvc.frontend.enteties.Customer;] did not match Query selection type
[com.mvc.frontend.enteties.Customer]
< /code>
Wenn ich den Ergebnistyp in Tupel ändere, erhalte ich ein Ergebnis und es ordnet ihn sogar dem richtigen Kunde mit allen 4 Variablen ab, die < /p>
korrekt zugeordnet sindlist = {ArrayList@12043} size = 4
0 = {TupleImpl@12052} "[com.mvc.frontend.enteties.Customer@5fff6af5]"
tupleMetadata = {TupleMetadata@12134}
row = {Object[1]@12135}
0 = {Customer@12136}
id = {UUID@12137} "95a2adce-7a84-4bda-836d-7de5f135be44"
name = "Anders Andersson"
credit = 5000
created = {Timestamp@12139} "2025-04-09 12:49:58.396667"
< /code>
Ergebnis aus dem alten Projekt mit Tuple und dann mit dem Kunden als Ergebnistyp ist das zweite Ergebnis der gewünschte Typ. < /p>
list = {ArrayList@11076} size = 4
0 = {TupleImpl@11083} "[com.mvc.data.enteties.Customer@7ad0ec0e]"
tupleMetadata = {TupleMetadata@14249}
row = {Object[1]@14250}
0 = {Customer@14251}
id = {UUID@14252} "95a2adce-7a84-4bda-836d-7de5f135be44"
name = "Anders Andersson"
credit = 5000
created = {Timestamp@14254} "2025-04-09 12:49:58.396667"
list = {ArrayList@14435} size = 4
0 = {Customer@14428}
id = {UUID@14429} "95a2adce-7a84-4bda-836d-7de5f135be44"
name = "Anders Andersson"
credit = 5000
created = {Timestamp@14431} "2025-04-09 12:49:58.396667"
< /code>
So versuche ich, die Daten zu holen < /p>
public List getCustomers() {
assert Main.sessionFactory != null;
var session = Main.sessionFactory.openSession();
if (session != null) {
var list = session.createSelectionQuery("FROM Customer ORDER BY name", Customer.class).getResultList();
session.close();
return list;
}
return new ArrayList();
}
< /code>
Die Klasse, die ich zu holen, sieht so aus. Es sieht im anderen Projekt mit der einzigen Ausnahme des Paketnamens genau gleich aus. < /P>
package com.mvc.data.enteties;
import java.util.Date;
import java.util.UUID;
import jakarta.persistence.*;
@Entity
@Table(name="T_Customer")
public class Customer {
@Id
@GeneratedValue
private UUID id;
private String name;
private int credit;
private Date created;
// Getters and setters omitted
}
maven < /li>
Spring Boot 3.4.4 < /li>
Jdk 24 < /li>
Hibernate 6.6.13 < /li>
>