[英]Java JPA get id of last persisted entity issue
我已經在這里閱讀了文章,但無法解決我的問題如何使用JPA獲取上一個持久實體的ID
我無法獲取學生的最后一個自動遞增的主鍵
這是來自Servlet類
if (operation.equalsIgnoreCase("Add")) {
student.setName(name);
student.setAddress(address);
int last = studentDAO.addStudent(student);
request.setAttribute("last", last);
request.setAttribute("student", student);
}
這是來自會話bean:
public int addStudent(Student student) {
em.persist(student);
em.flush();
System.out.println(student.getStudentID());
return student.getStudentID();
}
我只是用sout進行測試,看是否獲得了ID
但是每次添加一個student
時,它始終輸出0
。 我無法獲取最后生成的id
。 任何幫助將不勝感激。 謝謝!
編輯:我的學生班:
包裝型號;
導入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(){}
}
- 解決了! 彼得回答,謝謝!
ID在您的數據庫中遞增? 也許您忘記了ID定義上方的@GeneratedValue批注。 檢查此: http : //www.objectdb.com/java/jpa/entity/generated
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.