gpt4 book ai didi

Java JPA获取最后一个持久实体问题的ID

转载 作者:太空宇宙 更新时间:2023-11-04 06:48:51 25 4
gpt4 key购买 nike

我已阅读此处的文章,但无法解决我的问题 How to get Id of last persisted entity using JPA

无法获取学生最后一个自增主键

这是来自 Servlet 类

if (operation.equalsIgnoreCase("Add")) {
student.setName(name);
student.setAddress(address);


int last = studentDAO.addStudent(student);
request.setAttribute("last", last);
request.setAttribute("student", student);

}

这是来自 session bean:

public int addStudent(Student student) {
em.persist(student);

em.flush();

System.out.println(student.getStudentID());
return student.getStudentID();
}

我只是使用 sout 来测试,看看我是否获得了 ID,但每次我添加 学生 时它总是输出 0。我无法获取最后生成的id。任何帮助将不胜感激。谢谢!

编辑:我的学生类(class):

封装型号;

导入javax.persistence.*;

@Entity
@Table
@NamedQueries({@NamedQuery(name="Student.getAll", query="Select e from Student e")})
public class Student {
@Id
@Column
private int studentID;
@Column
private String name;
@Column
private String address;

public String getAddress() {
return address;
}

public void setAddress(String address) {
this.address = address;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public int getStudentID() {
return studentID;
}

public void setStudentID(int studentID) {
this.studentID = studentID;
}

public Student(int studentID, String name, String address) {
this.studentID = studentID;
this.name = name;
this.address = address;
}
public Student(){}
}

--解决了! Peter回复,谢谢!

最佳答案

您的数据库中的 ID 会增加吗?也许您忘记了 id 定义上方的 @GenerateValue 注释。检查这个:http://www.objectdb.com/java/jpa/entity/generated

关于Java JPA获取最后一个持久实体问题的ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23608306/

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