具有继承和 JPA 的 Lombok @Builder
Lombok @Builder with Inheritance and JPA
我有这个class:
@Entity
@Table(name = "PERSONNE")
@Inheritance(strategy = InheritanceType.JOINED)
@NoArgsConstructor
@AllArgsConstructor
@Data
@SuperBuilder
@ToString
@EqualsAndHashCode(of = { "personneId" })
public class Personne implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name = "PERSONNE_ID")
protected Long personneId;
}
和另一个
@Entity
@Table(name = "DISSIDENT")
@PrimaryKeyJoinColumn(name = "PERSONNE_ID")
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
public class Dissident extends Personne {
private static final long serialVersionUID = 1L;
}
但是当我 运行 测试时我得到了这个错误:
java: constructor Dissident() is already defined in class com.bar.peris.model.Dissident
尝试更改@NoArgsConstructor 的顺序
@AllArgsConstructor。 Class 默认情况下没有参数构造函数,除非定义了构造函数。
我有这个class:
@Entity
@Table(name = "PERSONNE")
@Inheritance(strategy = InheritanceType.JOINED)
@NoArgsConstructor
@AllArgsConstructor
@Data
@SuperBuilder
@ToString
@EqualsAndHashCode(of = { "personneId" })
public class Personne implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name = "PERSONNE_ID")
protected Long personneId;
}
和另一个
@Entity
@Table(name = "DISSIDENT")
@PrimaryKeyJoinColumn(name = "PERSONNE_ID")
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
public class Dissident extends Personne {
private static final long serialVersionUID = 1L;
}
但是当我 运行 测试时我得到了这个错误:
java: constructor Dissident() is already defined in class com.bar.peris.model.Dissident
尝试更改@NoArgsConstructor 的顺序 @AllArgsConstructor。 Class 默认情况下没有参数构造函数,除非定义了构造函数。