2017-09-20 8 views
0

Salut Je cherche une solution pour définir le mappage xml pour définir la valeur de la colonne par défaut comme configuré dans DB.Comment définir la valeur de la colonne par défaut à configuré dans la base de données en utilisant le mappage XML Hibernate?

Tableau par exemple colonne UPDATE_BY_DATE, horodatage de type UPDATE_BY_USER , varchar défaut SYSDATE, USER

XML Mapping

<property name="updatedByTime" column="UPDATE_BY_DATE" not-null="true" type="timestamp" insert="false" update="false"/> 
<property name="updatedByUser" column="UPDATE_BY_USER" length="20" not-null="true" insert="false" update="false"/> 

cela fonctionne pour insérer nouveau record, mais ne fonctionne pas lorsque l'entité mise à jour. Je veux le faire fonctionner pour la mise à jour aussi.

S'il vous plaît conseiller

Merci

Répondre

0

il n'y a pas défaut de mise à jour dans db ... vous pouvez faire avec des déclencheurs ou beaucoup plus facilement avec l'annotation @PreUpdate sur l'entité

exemple

@Entity 
public class Entity implements Serializable { 

    @Id 
    @GeneratedValue(strategy = GenerationType.IDENTITY) 
    private Long userId; 

    @Column(insertable = false, updatable = false) 
    @Temporal(TemporalType.TIMESTAMP) 
    private Date entityCreation; 

    @Column() 
    @Temporal(TemporalType.TIMESTAMP) 
    private Date entityUpdate; 

    @PreUpdate 
    public void setLastUpdate() { 
     entityUpdate = new Date(System.currentTimeMillis()); 
    } 

chaque fois qu'une entité vous est mis à jour, il est défini à la date currentMillis

+0

Y a-t-il un moyen de configurer @PreUpdate en XML? –

+0

N'utilisez jamais de fichier XML pour cela ... essayez de rechercher un intercepteur ou un écouteur d'événement, veillez à ce que la configuration de l'événement passe de Hibernate 3 à 4, donc vérifiez la version – Zeromus