【问题标题】:Java JPA get id of last persisted entity issueJava JPA 获取最后一个持久实体问题的 id
【发布时间】:2014-06-29 18:32:48
【问题描述】:

我已经阅读了这里的文章,但我无法解决我的问题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);

        }

这是来自会话 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(){}
}

--解决了!彼得回答,谢谢!

【问题讨论】:

  • 你能把你的学生课贴在这里吗?
  • 请同时打印异常的堆栈跟踪(应该会发生异常,除非您做一些基本错误的事情(例如打印错误的变量))。
  • 我已经添加了 Student Class 实体。
  • @Andrei 注意。我是新来的,找不到接受答案功能。

标签: java jpa entity


【解决方案1】:

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

【讨论】:

  • 愚蠢的错误。我忘记在 ID 中添加 @GeneratedValue。谢谢彼得!!
猜你喜欢
  • 2012-03-27
  • 2011-07-16
  • 1970-01-01
  • 1970-01-01
  • 2011-06-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-10
相关资源
最近更新 更多