带有@Embeddable的CrudRepository的spring数据

时间:2017-03-28 14:31:37

标签: java spring rest spring-data-jpa spring-data-rest

我得到了以下简化实体:

@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请求来创建新的actualProductGET响应,嵌入类型中的每一列在数据库中都为空。其余端点返回200。

Funfact

我尝试编写自定义控制器并将SalesProcessSalesProcessRepository一起存储。使用相同的查询测试它,它的工作原理。我不知道为什么spring-data-rest生成的rest端点不存储嵌入类型:(

0 个答案:

没有答案