【问题标题】:Nested reference object is persisting as null嵌套引用对象持续为空
【发布时间】:2019-02-19 13:37:31
【问题描述】:

我正在尝试使用 spring-data 将 pojo 存储在 couchbase 中,但持久化 json 将“用户类型的用户字段”存储为 null。

@JsonInclude(value = Include.NON_EMPTY)
@Document
public class ProjectXYZ {

    @Id
    @GeneratedValue(strategy = GenerationStrategy.UNIQUE)
    private String id;

    @Field
    private String prjname;

    @Field
    private User user;

    //setter and getter

}

更新: 用户Pojo

@JsonInclude(value = Include.NON_EMPTY)
@Document
public class User {

    @Id
    @Field
    private String id;

    @Field
    private String email;

    @Field
    private String firstName;

    @Field
    private String lastName;

    //setter and getter
}

如下所示,我正在保存它,一切正常并按预期进行,但用户对象被存储为空。

    ProjectXYZ project = new ProjectXYZ();
    project.setUser(getUser(request));
    project = projectXYZService.createProject(project);

【问题讨论】:

  • 您希望如何存储User?请发布课程代码User
  • 我认为@ManyToOne应该用于用户
  • 你有什么例子吗,就像在 spring-data-couchbase 中一样?
  • 调试时,project对象在保存前是否正确设置了user字段?
  • @Madhu Bhat,是的,在调试时我可以看到用户对象及其值..但它存储为空白..并且在检索它时会获取所有属性为空的对象..

标签: java spring-data couchbase spring-data-couchbase


【解决方案1】:

Spring 数据库不直接支持引用,因为它需要存储有关引用文档 ID 的元信息。

但是,当前 Lovelace (3.1.x) 版本中支持通过 N1QL ANSI 联接获取关联实体。这是documentation

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-18
    • 1970-01-01
    • 2021-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-31
    • 1970-01-01
    相关资源
    最近更新 更多