lombok、hibernate配对实体类映射注解
hibernate注解实体类时,会在每个get方法上加@Column,@Id等注解。使用lombok去掉get/set怎么处理hibernate的注解呢?
import javax.inject.Inject;
import javax.persistence.Id;
import javax.persistence.Column;
import javax.validation.constraints.Max;
public class OnXExample {
private long unid;
@Inject
public OnXExample(long unid) {
this.unid = unid;
}
@Id @Column(name="unique-id")
public long getUnid() {
return unid;
}
public void setUnid(@Max(10000) long unid) {
this.unid = unid;
}
}
lombok提供了onX的试验属性,分别为:onMethod, onParam, onConstructor。用于向生成的方法,构造器,参数添加注解
所以可以这么写
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.Setter;
import javax.inject.Inject;
import javax.persistence.Id;
import javax.persistence.Column;
import javax.validation.constraints.Max;
@AllArgsConstructor(onConstructor=@__(@Inject))
public class OnXExample {
// @Getter(onMethod=@__({@Id, @Column(name="unique-id")})) //JDK7
// @Setter(onParam=@__(@Max(10000))) //JDK7
@Getter(onMethod_={@Id, @Column(name="unique-id")}) //JDK8
@Setter(onParam_=@Max(10000)) //JDK8
private long unid;
}
注意JDK7和JDK8的写法