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 实体高级指南