我想在使用不可变对象将实体保存在数据库中后检索它,没有 getters 没有 setters
环境
春季启动 3.0.4.
Java 17
Postgres 15
我尝试设置一个不变的实体
实体
@Entity
@Table(name = "competence")
public class Competence {
private final Long id;
private fina String name;
private final LocalDatetime createdAt
Competence(Long id, String name, LocalDateTime cretedAt){
this.id = id;
this.name = name;
this.createdAt = createdAt;
}
static Competence of (Long id, String name, LocalDateTime cretedAt){
return new Competence(id, name, createdAt);
}
public static Competence withName(String name) {
return new CompetenceType(
null,
name,
LocalDateTime.now());
}
}
存储库
public interface CompetenceRepository extends JpaRepository<Competence,Long> {
}
控制器
@RestController
@RequestMapping("/api/v1/competence")
public class CompetenceTypeResource {
private CompetenceRepository competenceRepository;
@Autowired
public CompetenceTypeResource(CompetenceRepository competenceRepository) {
this.competenceRepository = competenceRepository;
}
@PostMapping
public CompetenceType createcompetence(@RequestBody CompetenceTypeDTO competence) {
CompetenceType competenceType = CompetenceType.withName(competence.name());
return this.competenceTypeRepository.save(competenceType);
}
}
我期待一个 Json 响应与创建的新实体,但我得到的只是一个空的 Json
{}
我需要写 getter 和 setter 吗?
有没有办法在 JPA 中填充不可变对象?
有没有办法在没有 getter 和 setter 的情况下填充实体?