Java Spring Boot Hibernate - [type.a] stimmte nicht mit Abfrageauswahltyp überein [type.a] Mehrere Auswahlen: Verwenden Java

Java-Forum
Anonymous
 Java Spring Boot Hibernate - [type.a] stimmte nicht mit Abfrageauswahltyp überein [type.a] Mehrere Auswahlen: Verwenden

Post by Anonymous »

Ich habe eine Hibrenate -Implementierung in ein anderes Projekt verschoben. Von com.mvc.data bis com.mvc.frontend . Nach dem Umzug erhalte ich die folgende Ausnahme, wenn ich versuche, Daten zu holen. < /P>

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
}
Ich habe versucht, alle Tabellen in der Datenbank zu löschen, um sie in dem neuen Projekt zu dem Hibernate wiedererlangt zu lassen, und es funktionierte wie erwartet, wobei die gleiche Struktur erstellt wurde. />
maven < /li>
Spring Boot 3.4.4 < /li>
Jdk 24 < /li>
Hibernate 6.6.13 < /li>
>

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post