J'ai un objet de domaine et annotés comme suitannotations Hibernation, indiquez la valeur par défaut de la colonne
@Entity
@Table(name = "REQUEST")
public class Request {
/**
* Unique id for this request
*/
@Id
@GeneratedValue
@Column(name = "EQ_ID")
private long requestId;
/**
*
*/
@Column(name = "EMAIL_ID")
private String emailId;
/**
*
*/
@Column(name = "REQUEST_DATE")
private Date requestDate;
/**
*Getters/setters omitted
*/
}
La colonne REQUEST_DATE ne peut pas être nulle et selon la LDD la valeur par défaut est sysdate (oracle DB). Comment puis-je annoter ce champ de sorte que si la propriété requestDate est null, hiberanate insère automatiquement sysdate. Actuellement, il lance une erreur lorsque le champ est nul, ce qui est très évident car il ne peut pas être nul selon les contraintes de la base de données. Comment je vais à ce sujet? Une alternative est de marquer ce champ comme transitoire et les inserts fonctionnent bien. Mais l'aspect négatif est que, je ne serai pas en mesure de récupérer la valeur (de la colonne request_date).
Ceci est une application Web. La ligne ci-dessus va insérer l'heure du serveur qui sera différente de sysdate (en supposant que le serveur d'applications et la base de données sont dans les fuseaux horaires diff). De même, le même code sera exécuté sur différents serveurs de développement, mais tous pointent vers la même instance db. – chedine
@chedine: Si vous avez des contraintes spécifiques, pourquoi ne pas les ajouter à la question ?! Vous feriez mieux de répondre et les gens ne perdraient pas leur temps à suggérer quelque chose qui ne correspondrait pas à vos contraintes ... –
Peut-être, mon erreur. Quoi qu'il en soit, merci pour votre temps. – chedine