Как автоматически сгенерировать метку времени в бине сущности в спящем режиме? - PullRequest
1 голос
/ 26 июля 2011

Как один автоматически генерирует метку времени в компоненте объекта в спящем режиме?

Имеет ли @Generator что-нибудь для непосредственного ввода, например:

@GeneratedValue(vale=new Date().getTime())

Ответы [ 3 ]

1 голос
/ 26 июля 2011

Вы можете реализовать глобальный EntityInterceptor:

public class GlobalEntityInterceptor 
    extends EmptyInterceptor {
    @Override
    public boolean onSave(java.lang.Object entity, java.io.Serializable p2, java.lang.Object[] p3, java.lang.String[] p4, org.hibernate.type.Type[] p5) {   
  //first save - you can modify your entity fields
}
    @Override
    public boolean onFlushDirty(java.lang.Object entity, java.io.Serializable p2, java.lang.Object[] p3, java.lang.Object[] p4, java.lang.String[] p5, 
                                    org.hibernate.type.Type[] p6) { 
  //modification  - you can modify your entity fields 

}

есть некоторые решения на основе аннотаций, такие как @ PrePersist , но они работают только в немногих средах .

1 голос
/ 26 июля 2011

Вы не можете поместить некоторый код в аннотацию, вы просто указываете значения.

Для автоматического обновления отметки времени при каждом изменении объекта вы можете использовать @Version в поле отметки времени:

   @Version
   private Timestamp lastUpdate;
0 голосов
/ 26 июля 2011

Вы можете использовать перехватчики hibernates для заполнения объектов некоторыми данными, т.е.дата создания и т. д.

Более подробную информацию о перехватчиках см. здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...