0
對於一個項目,我試圖查找List @ElementCollection字段中的所有不同類別。每個foo實例都有一個或多個分配的字符串類別。下面的代碼不起作用爲JBOSS /休眠拋出部署EAR到服務器時異常:選擇DISTINCT值表單@ElementCollection列表<String> @NamedQuery
Error in named query: Foo.listUniqueCategories: org.hibernate.QueryException: not an entity [SELECT DISTINCT f.categories FROM com.Foo f]
我有類:
@Entity(name = "Foo")
@NamedQuery(name = "Foo.listUniqueCategories", query = "SELECT DISTINCT f.categories FROM Foo f")
public class FooEntity
{
@Id()
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
protected Long id;
@ElementCollection
@CollectionTable(name = "categories", joinColumns = @JoinColumn(name = "foo_id"))
private List<String> categories;
...
}
這有什麼錯的選擇不同?是否支持在@EllementCollection上執行'SELECT DISTINCT'?
任何幫助表示讚賞! Richard
你不能在你的查詢中選擇這樣一個集合:https://forum.hibernate.org/viewtopic.php?f = 1&t = 963660 – user3487063 2014-09-22 15:01:49
你把我放在正確的軌道上。感謝您的信息!我通過將查詢更改爲@NamedNativeQuery直接查詢JPA生成的表來解決它。 – Bjarne77 2014-09-23 08:12:31
呃..我的答案有點太快了。 NamedNativeQuery方法導致了這個bug:http://jdevelopment.nl/hibernates-pure-native-scalar-queries-supported/ 所以我要去一個名爲Category的@Embeddable類。 – Bjarne77 2014-09-23 09:25:23