2010-02-19 11 views
1

Je me demande, s'il y a une définition par JPA pour le comportement, si vous définissez la valeur égale à n'importe quelle propriété. Je n'ai trouvé aucun mot dans la spécification.Définit le comportement JPA pour définir à nouveau la même valeur?

J'ai testé avec TopLink Essentials et Hibernate, que se passe-t-il si je charge une entité à partir de la base de données et redéfinit la propriété avec la même valeur.

@Entity 
public class MyEntity { 
    @Id 
    @GeneratedValue(strategy = GenerationType.IDENTITY) 
    private Integer id; 

    @Column(length = 20) 
    private String value; 

    @Version 
    private long version; 

    // Define setter and getter... 
} 

Réglage de la même valeur avec

entity.setValue(new String(myChars)); 

ne change pas la valeur de version. Puis-je attendre ce comportement pour chaque implémentation. Je ne pense pas ...

Répondre

1

Donc, vous définissez la valeur à la même chose, donc il n'a pas changé, alors pourquoi devrait-il arriver quelque chose? DataNucleus ne changera rien ... puisque rien n'a changé. QED

+0

La question est de savoir si je peux compter sur cela à chaque implémentation, ou non. – marabol

+0

La spécification JPA est notoirement vague sur plusieurs choses et, comme vous ne trouvez rien de spécifique à propos de cette action particulière, alors ne comptez sur rien. – DataNucleus