嵌套引用对象持久化时为null。

3
我正在尝试使用spring-data将以下pojo存储在couchbase中,但是持久化的json将“User类型的用户字段”存储为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
}

如下面所示,我正在保存它,所有工作都正常并且符合预期,但是用户对象被存储为 null。

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

1
你希望如何存储“User”?请发布“User”类的代码。 - StvnBrkdll
1
我认为应该使用@ManyToOne来处理用户。 - Rajat
1
你有没有任何示例,就像在Spring Data Couchbase中一样? - RTA
1
当你进行调试时,在保存之前,project对象的user字段是否被正确设置了? - Madhu Bhat
@Madhu Bhat,是的,在调试中我可以看到用户对象及其值。但它存储为空白。在检索时,它会获取所有属性为空的对象。 - RTA
1个回答

1

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

但是,在当前Lovelace(3.1.x)版本中,可以通过N1QL ANSI连接提取关联实体。这里是文档


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接