2014-05-12 1 views
1

Я прочитал статью здесь, но я не могу исправить мою проблему How to get Id of last persisted entity using JPAJava 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); 

     } 

Это из сессионного компонента:

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

     em.flush(); 

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

Я только что использовал sout, чтобы проверить, есть ли у меня ID, но он всегда выводит 0 каждый раз, когда я добавляю student. Я не могу получить последний сгенерированный 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(){} 
} 

- Решенный! Ответил Питер, спасибо!

+0

Уметете ли Вы, пожалуйста, свой студенческий класс? –

+0

Кроме того, распечатайте stacktrace исключения, пожалуйста (должно произойти исключение, за исключением того, что вы делаете что-то элементарное неправильно (например, печатаете неправильную переменную)). –

+0

Я добавил объект Student Class. – MLDS

ответ

1

Идентификатор увеличивается на ваш db? Возможно, вы забыли аннотацию @GeneratedValue выше вашего определения id. Проверьте, пожалуйста,: http://www.objectdb.com/java/jpa/entity/generated

+0

Глупая ошибка. Я забыл добавить @GeneratedValue в ID. Спасибо, Питер! – MLDS

Смежные вопросы