Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 一对一关系的JPA查询_Java_Jpa - Fatal编程技术网

Java 一对一关系的JPA查询

Java 一对一关系的JPA查询,java,jpa,Java,Jpa,我有一个EJB应用程序,在其中我将实体bean用于数据库。我必须创建具有单向一对一关系、JobPositionEntity和候选资格的实体bean 这是候选人资格 @实体 公共类候选资格扩展BaseEntity{ private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; priv

我有一个EJB应用程序,在其中我将实体bean用于数据库。我必须创建具有单向一对一关系、JobPositionEntity和候选资格的实体bean

这是候选人资格 @实体 公共类候选资格扩展BaseEntity{

    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    private Long meritNumber;

    private String seatNumber;

    private String candidateName;

    private String gender;

    public Long getMeritNumber() {
        return meritNumber;
    }

    public void setMeritNumber(Long meritNumber) {
        this.meritNumber = meritNumber;
    }

    public String getSeatNumber() {
        return seatNumber;
    }

    public void setSeatNumber(String seatNumber) {
        this.seatNumber = seatNumber;
    }

    public String getCandidateName() {
        return candidateName;
    }

    public void setCandidateName(String candidateName) {
        this.candidateName = candidateName;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    @Override
    public Long getId() {
        return id;
    }

    @Override
    public void setId(Long id) {
        this.id = id;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (id != null ? id.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof CandidateEntity)) {
            return false;
        }
        CandidateEntity other = (CandidateEntity) object;
        if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "com.nisheeth.config.ejb.entity.CandidateEntity[ id=" + id + " ]";
    }

}
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    private String name;

    @OneToOne(fetch = FetchType.EAGER, orphanRemoval = true, cascade = CascadeType.ALL)
    private CandidateEntity candidate;

    @ManyToOne(fetch = FetchType.EAGER)
    private SeasonEntity season;

    public SeasonEntity getSeason() {
        return season;
    }

    public void setSeason(SeasonEntity season) {
        this.season = season;
    }

    public CandidateEntity getCandidate() {
        return candidate;
    }

    public void setCandidate(CandidateEntity candidate) {
        this.candidate = candidate;
    }

    @Override
    public Long getId() {
        return id;
    }

    @Override
    public void setId(Long id) {
        this.id = id;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (id != null ? id.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof JobPositionEntity)) {
            return false;
        }
        JobPositionEntity other = (JobPositionEntity) object;
        if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
            return false;
        }
        return true;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "com.nisheeth.config.ejb.entity.JobPositionEntity[ id=" + id + " ]";
    }

}
这是JobPositionEntity @实体 公共类JobPositionEntity扩展了BaseEntity{

    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    private Long meritNumber;

    private String seatNumber;

    private String candidateName;

    private String gender;

    public Long getMeritNumber() {
        return meritNumber;
    }

    public void setMeritNumber(Long meritNumber) {
        this.meritNumber = meritNumber;
    }

    public String getSeatNumber() {
        return seatNumber;
    }

    public void setSeatNumber(String seatNumber) {
        this.seatNumber = seatNumber;
    }

    public String getCandidateName() {
        return candidateName;
    }

    public void setCandidateName(String candidateName) {
        this.candidateName = candidateName;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    @Override
    public Long getId() {
        return id;
    }

    @Override
    public void setId(Long id) {
        this.id = id;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (id != null ? id.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof CandidateEntity)) {
            return false;
        }
        CandidateEntity other = (CandidateEntity) object;
        if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "com.nisheeth.config.ejb.entity.CandidateEntity[ id=" + id + " ]";
    }

}
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    private String name;

    @OneToOne(fetch = FetchType.EAGER, orphanRemoval = true, cascade = CascadeType.ALL)
    private CandidateEntity candidate;

    @ManyToOne(fetch = FetchType.EAGER)
    private SeasonEntity season;

    public SeasonEntity getSeason() {
        return season;
    }

    public void setSeason(SeasonEntity season) {
        this.season = season;
    }

    public CandidateEntity getCandidate() {
        return candidate;
    }

    public void setCandidate(CandidateEntity candidate) {
        this.candidate = candidate;
    }

    @Override
    public Long getId() {
        return id;
    }

    @Override
    public void setId(Long id) {
        this.id = id;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (id != null ? id.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof JobPositionEntity)) {
            return false;
        }
        JobPositionEntity other = (JobPositionEntity) object;
        if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
            return false;
        }
        return true;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "com.nisheeth.config.ejb.entity.JobPositionEntity[ id=" + id + " ]";
    }

}
我想选择不在JobPositionEntity中的候选人。我的查询不适用于我:

select ce.candidateName, ce.id from JobPositionEntity jp left join  jp.candidate ce where ce <> null
从JobPositionEntity jp left join jp.candidateName,ce.id选择ce.candidateName,其中ce为null
有人能帮忙写这个查询吗?提前谢谢。

您可以使用子查询

select c from Candidate c where c.id not in
(select jp.candidate.id from JobPositionEntity jp)
有关更多信息:

我看不到发布的JPQL和您想要的描述之间的任何关系。您能澄清一下吗?举个例子。如果您在JobPositionEntity中看到的是一对一的关系。这并不能澄清任何事情。假设您有J1-C1、J2-C2、J3 null、null-C4,其中J是一个JobPosition,而C是一个候选者。查询结果是什么你想找什么?