Hibernate 实体是 Java 应用程序中用于持久化数据的对象。它们是 Java 对象,代表了数据库中的表。本指南将介绍如何创建和使用 Hibernate 实体。
实体类
在 Hibernate 中,实体类是继承自 java.io.Serializable
的 Java 类。实体类通常包含以下元素:
- 属性:代表数据库表中的列。
- getter 和 setter 方法:用于访问和修改属性。
- 主键:唯一标识每个实体实例。
import javax.persistence.Entity;
import javax.persistence.Id;
@Entity
public class User {
@Id
private Long id;
private String name;
private String email;
// getters and setters
}
映射实体
为了将实体类映射到数据库表,您需要在实体类上使用 Hibernate 注解。
@Entity
@Table(name = "users")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private String email;
// getters and setters
}
查询实体
使用 Hibernate 查询实体可以通过 HQL 或 Criteria API 实现。
// HQL
String hql = "FROM User WHERE name = :name";
Query query = session.createQuery(hql);
query.setParameter("name", "John Doe");
User user = (User) query.uniqueResult();
// Criteria API
Criteria criteria = session.createCriteria(User.class);
criteria.add(Restrictions.eq("name", "John Doe"));
User user = (User) criteria.uniqueResult();
实体关系
Hibernate 支持多种实体关系,如一对一、一对多、多对多等。
@Entity
public class User {
@Id
private Long id;
private String name;
@OneToMany(mappedBy = "user")
private List<Post> posts;
}
@Entity
public class Post {
@Id
private Long id;
private String content;
@ManyToOne
@JoinColumn(name = "user_id")
private User user;
}
扩展阅读
如果您想了解更多关于 Hibernate 实体的信息,请阅读我们的 Hibernate 实体高级指南。