Hibernate - ArrayList kann nicht in Set umgewandelt werden

8

Ich habe eine Java EE-Anwendung und verwende Hibernate. Bei den Domain-Objekten habe ich die List / ArrayList in Set / HashSet geändert, da es besser ist, Sets zu verwenden.

Aber in meiner Dao-Implementierung stoße ich auf ein Problem:

%Vor%

Hier bekomme ich einen Fehler:

%Vor%

Was kann ich tun, um diesen Fehler zu vermeiden?

Vielen Dank im Voraus & amp; Beste Grüße.

    
Tim 12.10.2010, 11:59
quelle

2 Antworten

21
%Vor%

sess.createQuery("from Item").list(); gibt eine Array-Liste der resultierenden Elemente zurück, wenn Sie sie in Set benötigen, können Sie sie wie im Code gezeigt erstellen

    
Jigar Joshi 12.10.2010, 12:02
quelle
3
  

Die Domain-Objekte, ich habe die List / ArrayList in Set / HashSet geändert, weil es besser ist, Sets zu verwenden.

Es ist nicht "besser" Set zu verwenden, es hängt ganz davon ab, was Sie brauchen. Wie auch immer, der Sammlungs-Typ, den Sie in Ihren Domain-Objekten verwenden, und der Rückgabetyp von Query#list() sind zwei nicht verwandte Dinge .

Persönlich kann ich nicht sagen, dass ich viel Wert beim Konvertieren des Ergebnisses einer Abfrage in Set sehe (abgesehen davon, dass mehr Speicher verbraucht wird), es sei denn, Sie möchten duplicates aus Abfrageergebnisse natürlich (aber in diesem Fall würde ich die Zuordnungen herausfordern).

Nun, wenn Sie darauf bestehen, haben die verschiedenen Set Implementierungen einen Konstruktor, der ein Collection akzeptiert (und die Frage ist im Wesentlichen ein Duplikat von Pascal Thivent 12.10.2010 12:34

quelle