【问题标题】:JPA inheritance mapping gives no error, but JPQL query not giving any resultsJPA 继承映射没有给出错误,但 JPQL 查询没有给出任何结果
【发布时间】:2017-09-19 14:13:39
【问题描述】:

我有一个班级 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”表确实有一行:

我的错误在哪里?

从个人 p 中选择 p WHERE p.Type="JobCoach" 也不起作用。

【问题讨论】:

    标签: java jpa javafx properties mapping


    【解决方案1】:

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

    【讨论】:

    • 哦,那是我的问题中的一个错字。 Select p from Persoon p 返回 0 结果是我的问题。
    猜你喜欢
    • 2014-03-12
    • 1970-01-01
    • 1970-01-01
    • 2016-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-15
    相关资源
    最近更新 更多