bonjour,
le mapping objet relationnel en hibernate peut se faire soit en utilisant des annotations soit en utilisant des fichiers XML.
Quelles sont les avantages/incovéniants de chacune de ces 2 possibilités?
Quelle solution utilisez vous?
Voici les premiers arguments que j'ai trouvé :
1: les annotations sont beaucoup plus concises que le XML notamment en utilisant massivement les options par défaut.
Ex : pour mapper une entité et ses attributs on peut se contenter de 2 annotations :@entity au dessus de la classe et @id. il faut ensuite écrire d'autres annotations pour les relations entre classes.
Même en même temps, celà peut être un inconvéniant car celà suppose de bien connaitre les valeurs par défaut.
2 : il est plus facile de refactorer le code avec les annotations.
extrait du livre hibernate in action :
One of the clear benefits of annotations is their flexibility for agile development. If you refactor your code, you rename, delete, or move classes and properties all the time. Most development tools and editors can’t refactor XML element and attribute values, but annotations are part of the Java language and are included in all refactoring operations.
3 : Si une table de la BDD n'a pas le même nom que le POJO java correspondant alors on est obligé d'écrire par exemple :
@Entity @Table(name="Dossiers")
=> c'est moche : on lie le code JAVA au MCD.
de même pour les relations par exemple :
@JoinColumn(name="services_id")
public Service getService() {
return service;
}
les auteurs de hibernate in action et les experts qui ont mis au point la norme JPA et EJB3 conseillent d'employer les annotations.
Que peut on dire d'autre sur ce sujet?
dans mon service de développement informatique, tous mes développeurs utilisent la configuration en XML et j'ai du mal à les convaincre de passer aux annotations.
Cordialement
loïc midy
Partager