Ich verwende die Hibernate-Implementierung von JPA (Hibernate-Version: 4.2.1, JPA-Version: 1.8.1). Ich habe einige native Abfragen, deren Ergebnis meiner Liste von benutzerdefinierten POJOS (markiert mit @Entity) zugeordnet ist. Wenn die Abfrage ausgeführt wird, erhalte ich jedoch eine leere Tabelle, die in meinem MySQL-Schema mit den Attributen in meinem POJO erstellt wurde. Wie stelle ich sicher, dass keine Tabelle zu meinem bestehenden Schema hinzugefügt wird, wenn man berücksichtigt, dass es nicht möglich ist, native Abfrageergebnisse einem POJO zuzuordnen, ohne sie als "Entity" zu kennzeichnen.Zuordnungsergebnis der systemeigenen Abfrage zu einem POJO, ohne dass eine entsprechende Tabelle in der Datenbank bei der Abfrageausführung erstellt wurde
POJO
package abc;
@Entity
public class Myclass
{
@Id
private Integer productId;
private String productName;
public MyClass(){
}
/**getters and setters for productId and productName**/
}
CODE Snippet für
List<Integer> productIdList = new ArrayList<>();
productIdList.add(1);
productIdList.add(20);
productIdList.add(34);
List<MyClass> myList=(List<MyClass>)(entityManager.createNativeQuery("select p.productId, p.productName from products p where p.productId IN (:productIdList)",MyClass.class).setParameter("productIdList", productIdList).getResultList());
Das klingt sehr seltsam für mich. Können Sie den entsprechenden Code hinzufügen? Normalerweise sollte eine native Abfrage den Typ "List
Es gibt JPA 1.0, 2.0, 2.1. Es gibt keine JPA 1.8.1! –
Überprüfen Sie Ihre Datei "presistenz.xml" für die Konfiguration mit dem Namen "hibernate.hbm2ddl.auto", und entfernen Sie sie. Diese Konfiguration wird zum Erstellen, Aktualisieren und Entfernen von Tabellen basierend auf im Code definierten Entitäten verwendet. Können Sie Ihren Code posten, damit wir verstehen, was genau Sie tun? – Navnath