我正在使用 Struts2 以及带有 Hibernate 的 JPA 进行项目。
我有两个实体用户(id,电子邮件)和客户(user_id)。因为很自然地认为每个客户都是用户,所以我从用户那里继承了客户。这是实体的相关代码:
用户:
@Entity
@Table(name = "user")
@Inheritance(strategy = InheritanceType.JOINED)
public class User implements Serializable {
@Id
@GeneratedValue
private int id;
private String email;
...getters and setters...
}
顾客
@PrimaryKeyJoinColumn(name = "user_id",referencedColumnName = "id")
@NamedQueries({
@NamedQuery(name = "Customer.getByCustomerUserId", query = "SELECT C FROM Customer C where C.id=:id")
})
public class Customer extends User implements Serializable {
}
如果我运行查询Customer.getByCustomerUserId我不断收到错误:
“where 子句”中的未知列“customer0_.id”
我尝试通过创建一个具有 Id 字段的 BaseEntity 并让用户实体从它继承来遵循此处给出的答案,但没有任何效果。我仍然不断收到此错误消息。有人可以告诉我出了什么问题吗?