Wednesday, March 25, 2015

Spring Reflection + Commons Colletion

import java.lang.reflect.Field;

import org.apache.commons.collections.Transformer;
import org.springframework.util.ReflectionUtils;

 public class TransformerUtils {
  public static Transformer forFieldName(final String fieldName) {
   return new Transformer() {
     @Override 
     public Object transform(Object object) {
     Field f = ReflectionUtils.findField(object.getClass(), fieldName);
     ReflectionUtils.makeAccessible(f);
     return ReflectionUtils.getField(f, object);
    }
   };
  }
 }


example:
Collection zentraleTermine; // test data 
Collection terminIds = CollectionUtils.collect(zentraleTermine,TransformerUtils.forFieldName(ZentralerTerminConst.ID));




Saturday, November 29, 2014

Ultimate Hibernate Base Bean


/**
 * Perfect Entity base class
 */
@Getter
@ToString
@EqualsAndHashCode
@NoArgsConstructor
@MappedSuperclass
public abstract class EntityBase implements Serializable, IsSerializable {

 private static final long serialVersionUID = 1L;

 @Id
 @GeneratedValue(strategy = GenerationType.AUTO)
 @Column(name = "ID")
 protected Long id;

 @Version
 @Column(name = "VERSION")
 protected Integer version;

 @Temporal(TemporalType.TIMESTAMP)
 @Column(name = "CREATED", nullable = false)
 protected Date created;

 @Temporal(TemporalType.TIMESTAMP)
 @Column(name = "UPDATED", nullable = false)
 protected Date updated;

 @PrePersist
 protected void onCreate() {
  updated = created = new Date();
 }

 @PreUpdate
 protected void onUpdate() {
  updated = new Date();
 }
}