我得到了以下简化实体:
@Data
@Entity
public class SalesProcess {
private @Id @GeneratedValue Long id;
@ManyToOne
private Customer customer;
private Date nextContactDate;
private String nextContactNote;
@Embedded
@Access(AccessType.PROPERTY)
private ActualProduct actualProduct;
private SalesProcess() {}
}
@Data
@Embeddable
public class ActualProduct {
private String type;
private Date manufactureDate;
private ActualProduct() {}
}
这样我的数据有点分开,但仍然是一个表中的所有内容。
要获取REST端点,我创建了一个从CrudRepository扩展的简单接口:
public interface SalesProcessRepository extends CrudRepository<SalesProcess, Long> {}
当我对“http://localhost:8080/salesProcesses/1”发出请求时,我确实得到了包含的嵌入式类型的正确响应:
{
...
actualProduct: {
type: 'some type',
...
},
}
我的问题是指我尝试通过嵌入SalesProcess
嵌入式服务器执行POST
请求来创建新的actualProduct
。 GET
响应,嵌入类型中的每一列在数据库中都为空。其余端点返回200。
Funfact
我尝试编写自定义控制器并将SalesProcess
与SalesProcessRepository
一起存储。使用相同的查询测试它,它的工作原理。我不知道为什么spring-data-rest生成的rest端点不存储嵌入类型:(