簡體   English   中英

Java JPA獲取上一個持久實體問題的ID

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM