【问题标题】:JPA : illegal attempt to dereference collectionJPA:非法尝试取消引用集合
【发布时间】:2012-10-17 07:47:31
【问题描述】:
@Entity
@Table(name="users")
public class User implements Serializable 
{
    private List<Request> sentRequest;
    private List<Request> receivedRequest;
    private Profile profile;
}

public  List<Object> getUserProfiles(Integer userid) 
{
    query = em.createQuery(
            "SELECT p from Profile p1,Profile p2 WHERE " + 
            "p1.user.sentRequest.sender.id (:id) NOT IN " + 
            " p2.user.receivedRequest.receiver.id and " + 
            "p1.user.id NOT IN (:id)"
        ).setParameter("id",userid);

我尝试了上面的查询,它抛出了非法的取消引用集合的尝试。 关系是
用户 - 配置文件 OneToOne 和用户 - 请求 OneToMany

我想选择所有没有发送请求的用户个人资料,除了自己的个人资料。

【问题讨论】:

    标签: java hibernate jpa


    【解决方案1】:

    问题是这部分代码p1.user.sentRequest.sender.id (:id) NOT IN参数必须在NOT IN之后像这样p1.user.sentRequest.sender.id NOT IN (:id)

    【讨论】:

      猜你喜欢
      • 2011-09-18
      • 2014-09-05
      • 1970-01-01
      • 2015-11-27
      • 2011-09-13
      • 1970-01-01
      • 1970-01-01
      • 2023-04-09
      • 1970-01-01
      相关资源
      最近更新 更多