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