gpt4 book ai didi

java - 如何在类中映射没有属性 id 的 hibernate 映射文件?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:48:56 26 4
gpt4 key购买 nike

我创建了一个简单的类和一个简单的数据库表来测试 hibernate 概念。该类名为“Employee”:

public class Employee {
private String firstName;
private String lastName;
private int salary;
public Employee(String fname, String lname, int salary) {
this.firstName = fname;
this.lastName = lname;
this.salary = salary;
}
...
}

数据库名称“EMPLOYEE”:

create table EMPLOYEE (
id INT NOT NULL auto_increment,
first_name VARCHAR(20) default NULL,
last_name VARCHAR(20) default NULL,
salary INT default NULL,
PRIMARY KEY (id)
);

这是我的 Employee.hbm.xml:

<hibernate-mapping>
<class name="Employee" table="EMPLOYEE">
<id name="id" type="int" column="id">
<generator class="native"/>
</id>
...
...
</class>
</hibernate-mapping>

因此,您会注意到在我的类中它没有“id”属性。但是,我在我的数据库中创建了 id 列,让它成为自动生成的主键。在这种情况下,我不知道我应该在 <id name="?" type="int" column="id"> 中放什么将我的类(class)映射到我的数据库。如果不理会,以后会不会出问题?

最佳答案

我能理解你的意思,但是 Hibernate 使用对象的 ID 识别对象(在一级和二级缓存中),所以没有 ID 的对象不能在 hibernate 中表示。

我建议您使用生成器类创建字段作为 native 并让数据库处理该值。

所以在注释中你会说

@Id @GeneratedValue(strategy=GenerationType.NATIVE)
private Integer id;

如果您不想多次重复此条目,您可以创建一个基类 (base pojo) 并在所有模型中扩展该类。

关于java - 如何在类中映射没有属性 id 的 hibernate 映射文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17106100/

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