![]() |
留胡子的柠檬 · 在JPA/Hibernate中正确使用flu ...· 2 月前 · |
![]() |
刀枪不入的火锅 · 小鹏P5原厂可选配床垫、冰箱、投影仪,“尬住 ...· 1 年前 · |
![]() |
捣蛋的凉茶 · 20万左右买什么车好?起亚K3 EV ...· 1 年前 · |
![]() |
近视的橙子 · 售价13.98万元,2023款瑞驰EC35正式上市· 1 年前 · |
![]() |
侠义非凡的甘蔗 · 寄宿学校的朱丽叶_抖抖音· 1 年前 · |
|
天涯 · 阿里云 Serverless 事件总线 ...· 1 年前 · |
我将Lombok项目与Spring Data JPA结合使用。有没有办法将Lombok
@Builder
与JPA默认构造函数连接起来?
代码:
@Entity
@Builder
class Person {
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
}
据我所知,JPA需要默认的构造器,它被
@Builder
注解所覆盖。有什么解决方法吗?
这段代码给出了错误:
org.hibernate.InstantiationException: No default constructor for entity: : app.domain.model.Person
发布于 2016-02-24 20:28:59
您也可以在类定义中结合使用
@Data @Builder @NoArgsConstructor @AllArgsConstructor
来显式地解决这个问题。
发布于 2018-08-28 07:45:08
似乎注释顺序在这里很重要,使用相同的注释,但顺序不同,你可以让代码工作,也可以不工作。
以下是一个不起作用的示例:
@AllArgsConstructor
@Builder
@Data
@Entity
@EqualsAndHashCode
@NoArgsConstructor
@RequiredArgsConstructor
@Table
@ToString
public class Person implements Serializable {
private String name;
}
这是一个有效的例子:
@Builder
@Data
@Entity
@EqualsAndHashCode
@AllArgsConstructor
@NoArgsConstructor
@RequiredArgsConstructor
@Table
@ToString
public class Person implements Serializable {
private String name;
}
所以一定要把@Builder注释放在最上面的位置,在我的例子中,我遇到了这个错误,因为我想按字母顺序对注释进行排序。
发布于 2019-07-19 20:14:02
使用
@NoArgsConstructor
和
@AllArgsContructor
将有助于解决具有
@Builder
的默认构造函数的问题。
e.g
@Entity
@Builder
@NoArgsConstructor