Maison  >  Article  >  Java  >  Comment les annotations de l'API Java Persistence (JPA) sont-elles mappées au mappage objet-relationnel ?

Comment les annotations de l'API Java Persistence (JPA) sont-elles mappées au mappage objet-relationnel ?

王林
王林original
2024-05-06 16:33:01500parcourir

Le mappage d'annotations JPA mappe les objets Java aux tables de base de données relationnelles, simplifiant ainsi l'interaction avec la base de données. Les annotations d'entité marquent les objets persistants (@Entity), les annotations de champ spécifient les mappages de colonnes de base de données (@Column, @Lob) et les annotations de mappage de relations représentent les relations entre les entités (@OneToOne, @OneToMany, @ManyToMany). Par exemple, dans les entités Employee et Department, @OneToOne représente une relation un-à-un et @OneToMany représente une relation un-à-plusieurs.

Java Persistence API(JPA)中的注解如何映射对象-关系映射?

Mappage d'annotations dans l'API de persistance Java (JPA) : mappage objet-relationnel

L'API de persistance Java (JPA) fournit un moyen de mapper des objets Java à des tables de base de données relationnelles à l'aide d'annotations. Ce mappage est appelé mappage objet-relationnel (ORM) et simplifie le processus d'interaction avec la base de données.

Annotations d'entité

Les annotations d'entité sont utilisées pour marquer une classe Java afin d'indiquer qu'il s'agit d'un objet persistant. Les annotations d'entité couramment utilisées incluent :

  • @Entity : indique qu'une classe est une entité JPA.
  • @Entity:指示一个类是 JPA 实体。
  • @Id:表示一个持久字段是实体的主键。

字段注解

字段注解用于指定字段的数据库列映射。常用的字段注解包括:

  • @Column:指定字段的数据库列名、类型和其他属性。
  • @Lob:指示字段是一个大对象(LOB),如文本或图像。

关系映射注解

关系映射注解用于表示两个实体之间的关系。常用的关系映射注解包括:

  • @OneToOne:一对一关系。
  • @OneToMany:一对多关系。
  • @ManyToMany:多对多关系。

实战案例

假设我们有一个 Employee 实体和一个 Department 实体,它们具有以下关系:每个部门可以有多个员工,每个员工只能属于一个部门。

@Entity
public class Employee {
    @Id
    private Long id;
    private String name;

    @OneToOne
    private Department department;
}

@Entity
public class Department {
    @Id
    private Long id;
    private String name;
    
    @OneToMany(mappedBy = "department")
    private Set<Employee> employees;
}

在前面的代码中,@OneToOne 注解指示 EmployeeDepartment 之间存在一对一关系,一个员工对应一个部门。 @OneToMany 注解指示 DepartmentEmployee@Id : Indique qu'un champ persistant est la clé primaire de l'entité.

🎜Annotations de champ🎜🎜🎜Les annotations de champ sont utilisées pour spécifier le mappage des colonnes de base de données du champ. Les annotations de champ couramment utilisées incluent : 🎜🎜🎜@Column : spécifiez le nom de la colonne de base de données, le type et d'autres attributs du champ. 🎜@Lob : Indique que le champ est un objet volumineux (LOB), tel qu'un texte ou une image. 🎜🎜Annotation de mappage de relation🎜🎜🎜L'annotation de mappage de relation est utilisée pour représenter la relation entre deux entités. Les annotations de mappage de relations couramment utilisées incluent : 🎜🎜🎜@OneToOne : relation un-à-un. 🎜@OneToMany : relation un-à-plusieurs. 🎜@ManyToMany : Relation plusieurs-à-plusieurs. 🎜🎜Cas pratique🎜🎜🎜Supposons que nous ayons une entité Employé et une entité Département, qui ont la relation suivante : Chaque département peut avoir Employés multiples, chaque employé ne peut appartenir qu’à un seul service. 🎜rrreee🎜Dans le code précédent, l'annotation @OneToOne indique qu'il existe une relation un-à-un entre Employé et Département, et un employé correspond à un service . L'annotation @OneToMany indique qu'il existe une relation un-à-plusieurs entre Département et Employé, un service correspondant à plusieurs employés. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn