从JPA中的实体中选择使用@ElementCollection定义的本机集合

时间:2015-06-19 16:54:05

标签: jpa spring-data spring-data-jpa

我们假设我们有一个这种类型的实体:

@Entity
@Table(name="User")
public class User {
  @Id
  long id;

  @ElementCollection
  List<String> phones;
}

我的目标是为所有用户提供完整的电话列表,例如:“SELECT x.phones FROM User x”

我尝试构建这种类型的Spring Data JPA查询:

@Query("SELECT x.phones FROM User x")
List<String> findAllPhones();

但我得到了这个例外:

org.hibernate.QueryException: not an entity
        at org.hibernate.hql.internal.ast.tree.FromElementType.renderIdentifierSelect(FromElementType.java:188)

我不得不求助于本机sql查询来解决问题。 否则我必须将电话号码包装在新实体中,但我确实想避免这种情况。

有没有办法使用普通的JPA或(甚至更好的)Spring Data JPA方法解决这类问题?

0 个答案:

没有答案