lombok、hibernate配对实体类映射注解

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010826617/article/details/85940017

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的写法

参考资料:
https://projectlombok.org/features/experimental/onX

猜你喜欢

转载自blog.csdn.net/u010826617/article/details/85940017