Modèles
Bases
Un modèle est un POJO à qui on met l'attribut @Entity
.
@Entity
public class MyEntity {
// ...
}
Pour définir un ID clé-primaire, on utilise @Id
.
Pour l'auto-incrémenter, on utilise
@GeneratedValue(strategy = GenerationType.AUTO)
@Entity
public class MyEntity {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
}
On a besoin d'un constructeur vide explicite, et de getters/setters pour
chaque champ, ainsi que de la méthode equals et hashCode basée sur id
.
Relations
One to One
Mettons une classe Paper
et une classe Author
.
On a donc Paper(#author_id => Author(id))
.
Pour composer une telle relation, on utilise @OneToOne
sur l'entité
propriétaire.
Ici, Paper
est "propriétaire" de Author
.
@Entity
public class Author {
@Id @GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String name;
public Author() {}
public Author(String name) { this.name = name; }
// getters, setters, etc.
}
@Entity
public class Paper {
@Id @GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String title;
// ...
public Paper() {}
public Paper(String title) { this.title = title; }
// getters, setters, etc.
// OneToOne relationship where Paper owns Author
@OneToOne
private Author author;
}
Il n'y a rien d'autre à effectuer pour déclarer une 1-1
de base.
No Comments