【问题标题】:Spring DATA REST JSON mapper to Domain ModelSpring DATA REST JSON 映射器到域模型
【发布时间】:2016-07-18 12:04:04
【问题描述】:

我有问题,我正在使用 Spring Data Rest。所以我有一些这样的领域模型:

@Entity
public class Sample implements Serializable {
    @Id
    @GeneratedValue
    private Long id;

    @Column(name = "name")
    private String name;

    @Column(name = "is_main")
    private Boolean isMain;

    @LastModifiedDate
    @Column(name = "last_modified")
    private Date lastModified;

    @ManyToOne
    @JoinColumn(nullable = false,name = "user_id")
    private User user;

    @ManyToOne(fetch = FetchType.EAGER)
    @JoinColumn(nullable = false,name="state_id")
    private SampleState state;
}    

所以我从客户端发送 POST 请求到 http://{server.host}:8080/samples 使用 JSON 创建示例:

{"name":"sample","user":{"id":1},"state":{"id":1}}

希望它会自动将 json 的“用户”映射到模型参数“用户”,但 HttpMessageConverter 只是忽略了“状态”JSON 对象和“用户”Json 对象。你能帮助我如何管理自定义转换器或任何其他方式来创建示例吗?

提前致谢!

【问题讨论】:

  • 在 spring-data-rest 这样的问题很大程度上取决于你的存储库是如何配置的。你有UserSampleState 的存储库吗?这些存储库是否已导出?

标签: json jackson gson spring-data-jpa spring-data-rest


【解决方案1】:

忽略是什么意思?

顺便说一句,如果你有 'id' 值为 '1' 的 'user' 和 'state' 对象;那么该关联应该与数据库中的新样本对象成功保持。

但是如果你想将整个对象图创建到 db 中,那么 id 值应该为 null,也许你可能需要设置正确的级联选项。

【讨论】:

    猜你喜欢
    • 2014-10-22
    • 1970-01-01
    • 1970-01-01
    • 2020-11-27
    • 2016-12-18
    • 1970-01-01
    • 1970-01-01
    • 2019-01-22
    • 1970-01-01
    相关资源
    最近更新 更多