) dans Thymeleaf Spring Boot - Retrouvez les réponses et les commentaires concernant cette question" />
Je suis nouveau dans le démarrage de printemps et tente de faire une jointure entre deux entités non liées (transaction et article) à l'aide de JPA / JPQL. Mais je reçois l'erreur suivante lors de l'utilisation de Thymeleaf pour l'afficher dans un format de tableau:
public class TransactionDetail { private Long tid; private int from_uid; private int to_uid; private String item_name; private int item_count; private int status; public TransactionDetail() { } public TransactionDetail(Long tid, int from_uid, int to_uid, String item_name, int item_count, int status) { super(); this.tid = tid; this.from_uid = from_uid; this.to_uid = to_uid; this.item_name = item_name; this.item_count = item_count; this.status = status; } public Long getTid() { return tid; } public void setTid(Long tid) { this.tid = tid; } public int getFrom_uid() { return from_uid; } public void setFrom_uid(int from_uid) { this.from_uid = from_uid; } public int getTo_uid() { return to_uid; } public void setTo_uid(int to_uid) { this.to_uid = to_uid; } public int getItem_count() { return item_count; } public void setItem_count(int item_count) { this.item_count = item_count; } public int getStatus() { return status; } public void setStatus(int status) { this.status = status; } public String getItem_name() { return item_name; } public void setItem_name(String item_name) { this.item_name = item_name; } }
3 Réponses :
Votre En utilisant le deuxième argument, votre résultat ne doit pas nécessiter de casser sur requête code> renvoie
list code> de
objet code>. Cependant, l'entitémanager a une surcharge comme si: p>
public
Liste
Merci beaucoup! Cela n'a pas résolu mon problème, mais grâce à cela, j'ai pu comprendre la question. Ma requête retournait des morceaux de 2 entités différentes et n'était pas en mesure de convertir le résultat en objet TransactionDétails. Par conséquent, cela a fonctionné après avoir converti ces bits dans un objet transactionnelDétails dans la requête.
Je crois que c'est parce que vous ne retournez pas le modèle de votre contrôleur, seule la vue. Essayez de modifier votre contrôleur à lire, et renvoyer le modèle et afficher comme p>
Merci pour votre réponse! Mais s'avère que la question était due à la façon dont j'ai initialement initialisé ma créaction. Posté ma solution.
Étevent que la question était due à ma tentative de convertir le résultat de la requête (qui était des bits de 2 entités différentes) dans un nouvel objet de classe. Par conséquent, corrigé-le en modifiant la requête pour inclure la création d'une nouvelle instance de l'objet cible avec l'appel constructeur:
TypedQuery<TransactionDetail> query = em.createQuery("Select NEW package_name.TransactionDetail(s.tid,s.from_uid,s.to_uid,d.item_name,s.item_count,s.status) from Transaction s inner join Item d on s.item_id=d.item_id", TransactionDetail.class); List<TransactionDetail> tranlist = query.getResultList();