2015-02-12 9 views
10

dönmek için hazırda Bahar Deposu yapmak.
Hashmap'ın anahtarının anahtarını istiyorum = fool olarak SomeId ve Value.nasıl Genellikle List yerine bu HashMap almak için bir yolu var mı</p> <pre><code>@Query("SELECT a FROM Foo a WHERE a.someId = :id") Map<Long, Foo> findAllBySomeId(Long id) </code></pre> <p>olarak sorgu yazmak HashMap

Bu

@Query("SELECT new map (a.someId, a) FROM Foo a WHERE a.someId = :id") 
Map<Long, Foo> findAllBySomeIdAsMap(Long id); 

gibi denedik ama iki öğe döndü ama a.someId 0 olarak Değer ve anahtar olarak;

0=someId 
1=Foo 
+0

olası yinelenen [HQL ile Harita dönmek nasıl] (http://stackoverflow.com/questions/7876724/how-to-return-mapkey-value-with-hql) –

+0

biraz farklı olabilir O nereye 1-çok ilişki ile ek açıklama ile yapıyor. Ama ihtiyacım olan şey aynı (tek kişilik) tabloyu kullanıyor. – Paul

+0

@Paul, sonra hashmap alma yolunu buldunuz mu? Ben de aynısını yapmalıyım. –

cevap

2

this post Bu deneyin içinde

Ayrıca, senin hala List arıyoruz:

@Query("SELECT new map (a.someId, a) FROM Foo a WHERE a.someId = :id") 
List<Foo> findAllBySomeIdAsMap(Long id); 

Eğer imza değiştirmeye çalıştı mı? arasında

+0

Üzgünüm, benim yazım hatasıydı. imza Hashmap'dır. Gönderiyi düzenleyeceğim. Ancak sorun hala aynı – Paul

+0

Tamam. Gönderiyi kontrol ettin mi? Eğer öyleyse, davasında yardımcı oldu mu? Yanıtınız için – lgd

+0

teşekkürler. Mesaja baktım. Gönderide, sorgu, sonucun, yalnızca değerin haritada mevcut olduğunu kontrol etmeye çalışıyor. Ama ihtiyacım olan şey, "column-1" i belirtmenin bir yolu, Anahtar ve Değeriniz bu tablonun Varlığıdır. – Paul

İlgili konular