繁体   English   中英

JPA继承映射没有错误,但是JPQL查询没有给出任何结果

[英]JPA inheritance mapping gives no error, but JPQL query not giving any results

我有一个Persoon班:

@Entity
@Table(name = "persoon")
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "Type")
public class Persoon implements Serializable {

private static final long serialVersionUID = 1L;

protected Persoon() {

}

protected Persoon(String naam, String voornaam, String mail) {
    setNaam(naam);
    setVoornaam(voornaam);
    setEmail(mail);
}

private final StringProperty naam = new SimpleStringProperty();

@Column(name = "Naam")
public String getNaam() {
    return naam.get();
}

public void setNaam(String value) {
    naam.set(value);
}

public StringProperty naamProperty() {
    return naam;
}
@Column(name = "Voornaam")
public String getVoornaam() {
    return voornaam.get();
}

public void setVoornaam(String value) {
    voornaam.set(value);
}

public StringProperty voornaamProperty() {
    return voornaam;
}

private final StringProperty email = new SimpleStringProperty();

@Id
@Column(name = "Email")
public String getEmail() {
    return email.get();
}

public void setEmail(String value) {
    email.set(value);
}

public StringProperty emailProperty() {
    return email;
}
...

其中有一个子类JobCoach:

@Entity
@DiscriminatorValue("JobCoach")
@Access(AccessType.PROPERTY)
public class JobCoach extends Persoon implements Serializable {

private final StringProperty organisatie = new SimpleStringProperty();

@Column(name = "NaamBedrijf")
public String getOrganisatie() {
    return organisatie.get();
}

public void setOrganisatie(String value) {
    organisatie.set(value);
}

public StringProperty organisatieProperty() {
    return organisatie;
}
...

这可以完美映射,但是当我在netbeans中运行JPQL(右键单击persistence.xml)时,它将返回0个结果。

我的模式中的表“ persoon” 确实有一行:

行

我的错误在哪里?

从persoon p中选择p WHERE p.Type =“ JobCoach”也将不起作用。

使用select p from Persoon p WHERE .....引用实体类名而不是表名。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM