Tôi có thực thể người dùng và cố gắng lấy nó từ cơ sở theo id. Định nghĩa đối tượng bên dưới.Hibernate: nhận thực thể theo id
package com.hibernate.logic;
import java.io.Serializable;
import java.util.Random;
import javax.persistence.*;
@Entity
@Table(name="users")
public class User implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name="user_id")
private Long userId;
@Column(name="middlename")
private String middlename;
@Column(name="name")
private String name;
@Column(name="surname")
private String surname;
@Column(name="pass")
private String pass;
//bi-directional many-to-one association to Role
@ManyToOne
@JoinColumn(name="role_id")
private Role role;
public User() {
Random random = new Random();
this.userId = random.nextLong();
this.name = "";
this.surname = "";
this.middlename = "";
}
public Long getUserId() {
return this.userId;
}
public void setUserId(Long userId) {
this.userId = userId;
}
public String getMiddlename() {
return this.middlename;
}
public void setMiddlename(String middlename) {
this.middlename = middlename;
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
public String getSurname() {
return this.surname;
}
public void setSurname(String surname) {
this.surname = surname;
}
public Role getRole() {
return this.role;
}
public void setRole(Role role) {
this.role = role;
}
public String getPass() {
return pass;
}
public void setPass(String pass) {
this.pass = pass;
}
}
Vì vậy, phương thức getUserById (Long user_id) không nhận được thông tin từ cơ sở dữ liệu, nó chỉ gọi hàm tạo người dùng. Tại sao nó như vậy?
public User getUserById(Long user_id) {
Session session = null;
User user = null;
try {
session = HibernateUtil.getSessionFactory().openSession();
user = session.load(User.class,
user_id);
Hibernate.initialize(user);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (session != null && session.isOpen()) {
session.close();
}
}
return user;
}
tại sao bạn không trả lại người dùng1, trả lại (Người dùng) user1; – Subin