gpt4 book ai didi

java - 对父类(super class)属性的 Hibernate 查询

转载 作者:搜寻专家 更新时间:2023-11-01 03:44:02 26 4
gpt4 key购买 nike

首先,请原谅我对 Java 和 Hibernate 的无知,我正在研究不同的 ORM 解决方案,我不是 Java 程序员。

1) 是否可以将以下类层次结构映射到数据库表,Person.nameEmployee.name 指向不同的列?

abstract public class Person {
private String name;
}

public class Employee extends Person {
private String name;
}

2) 假设 1) 的答案是肯定的,有没有办法创建一个 HQL 或 Criteria 查询,要求 Hibernate 返回 Employee 对象,以 Person 为标准.name?

类似的东西:

SELECT e FROM Employee e WHERE e.super.name = "test";

最佳答案

1) 是的。这可以通过 MappedSuperclass 和注释您的列来完成

@MappedSuperclass
abstract public class Person {
@Column(name="PERSON_NAME")
private String name;
}
@Entity
public class Employee extends Person {
@Column(name="EMPLOYEE_NAME")
private String name;
}

2) 否。在不更改 Person 或 Employee 之一的属性名称的情况下。但是,您可以查询具有该名称的所有人员对象并将结果转换为 Employees。另一种选择是使用 native SQL 来查询您想要的列,这可能也不理想。

SELECT p FROM Person p WHERE p.name = "test";

关于java - 对父类(super class)属性的 Hibernate 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7165509/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com