public class Usuario implements Serializable, PreInsertEventListener { private int idUsuario; private String login; private String nombre; private String ape1; private String ape2; private String password; private String confirmPassword; private Date fechaCreacion; public Usuario() { } public Usuario(String login, String nombre, String ape1, String ape2, String password, String confirmPassword) { this.login = login; this.nombre = nombre; this.ape1 = ape1; this.ape2 = ape2; this.password = password; this.confirmPassword = confirmPassword; } @Override public boolean onPreInsert(PreInsertEvent pie) { int propertyNameIndex = getPropertyNameIndex(pie.getPersister().getPropertyNames(), "fechaCreacion"); Date fechaCreacion=new Date(); pie.getState()[propertyNameIndex] = fechaCreacion; ((Usuario)(pie.getEntity())).setFechaCreacion(fechaCreacion); return false; } /** * Obtiene el índice de una propiedad en función de su nombre * @param propertyNames Array con el nombre de las propiedades de una entidad * @param propertyName Nombre de la entidad de la que queremos obtener su índice * @return El indice de la propiedad o -1 si no existe la propiedad. */ private int getPropertyNameIndex(String[] propertyNames, String propertyName) { for (int i = 0; i < propertyNames.length; i++) { if (propertyNames[i].equals(propertyName)) { return i; } } return -1; } }