J'utilise à la fois les annotations Hibernate et Sybase. Je cherche à installer une colonne de version pour empêcher le verrouillage. La base de données doit administrer l'horodatage plutôt que l'application. Je voudrais accomplir cela en utilisant des annotations plutôt que hbm.xml.Version d'horodatage Hibernate contrôlée par la base de données.
J'ai essayé ce qui suit sans succès,
Je lis sur jboss.org à utiliser
@org.hibernate.annotations.SourceType.DB
@org.hibernate.annotations.Generated(GenerationTime.ALWAYS)
mais je reçois une erreur de compilation IDE pour DB, « ne peut pas trouver le symbole symbole: classe DB lieu: classe SourceType »
et une erreur de compilation pour rowversion,
Le champ Version ou la propriété ne fait pas partie des types pris en charge. Assurez-vous qu'il s'agit de l'un des types suivants: int, Integer, short, Short, long, Long, java.sql.Timestamp.
Un attribut temporel doit être marqué avec l'annotation @Temporal.
http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html/mapping.html#d0e5785
5.1.3.2. Timestamp
Exemple de code
@Version
@org.hibernate.annotations.SourceType.DB
@org.hibernate.annotations.Generated(GenerationTime.ALWAYS)
@Column(name = "row_version")
private Date rowVersion;
public Date getRowVersion() {
return rowVersion;
}
public void setRowVersion(Date rowVersion) {
this.rowVersion = rowVersion;
}
Quelqu'un pourrait-il me dire ce que je suis absent?
Merci, une dernière question, comment gérez-vous la date datatype . L'EDI veut que je l'utilise Un attribut temporel doit être marqué avec l'annotation temporelle –
Quelle heure dois-je utiliser avec ceci? –
Ajoutez simplement l'annotation Temporelle au champ. (comme Version par exemple) – Markus