我们假设我们有一个这种类型的实体:
@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方法解决这类问题?