【发布时间】:2020-09-21 21:31:10
【问题描述】:
我有带有 Web、JPA、H2、Web、Lombok 依赖项的 Spring Boot 应用程序。 我有如下实体
@NoArgsConstructor
@AllArgsConstructor
@Data
@Entity
@Getter
public class Book {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(nullable = false)
private String name;
@Column(nullable = false)
private Integer pageCount;
@ManyToOne
@JoinColumn(name = "author_id")
private Author author;
}
@NoArgsConstructor
@AllArgsConstructor
@Data
@Entity
@Getter
public class Author {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(nullable = false)
private String firstName;
@Column
private String lastName;
}
我正在为 /books REST 端点使用 JSON 格式
[
{},
{}
]
如果我将 getter 和 setter 添加到实体,它可以正常工作。如何在不添加 getter setter 的情况下获取实际值作为响应,因为我正在使用 @Data 注释
【问题讨论】:
-
您不需要同时使用 Getter 和 Data,Data 已经设置了您的 getter。实体也应该与 Table(name = "table_name" ) 注释一起使用。
-
您根本不应该在 JPA 类型上使用 @Data,因为需要正确处理“toString”、“equals”和“hashCode”。详情请看我的回答stackoverflow.com/a/34299054/1331935。
标签: java spring-boot rest lombok spring-rest