Spring Data MongoDB无法加载引用集合(@DBRef)

loknath:

我在mongo数据库中有两个集合,分别名为failurecausesstatistics每个统计信息都有对失败原因列表的引用。

我还有一个带有spring-boot-starter-data-MongoDB的 Spring boot应用程序,我试图在其中加载统计信息。

在这里,我可以找到统计信息元素,但未加载引用失败原因。

有人可以帮我吗。

统计收集条目

{
    "_id" : ObjectId("5de64e537c31473444743985"),
    "projectName" : "Test",
    "buildNumber" : 5,
    "displayName" : "#5",
    "result" : "FAILURE",
    "failureCauses" : [ 
        {
            "failureCause" : {
                "$ref" : "failureCauses",
                "$id" : ObjectId("5ddcf6f98f705f000623ec39"),
                "$db" : "bfa_test"
            },
            "indications" : [ 
                {,
                    "matchingFile" : "log",
                    "matchingString" : "ERROR:"
                }
            ]
        }
    ]
} 

失败原因收集条目

{
    "_id" : ObjectId("5c99cfcfffb7870007bb351b"),
    "name" : " failed",
    "description" : "check build log.",
    "comment" : "",
    "indications" : [ 
        {
            "@class" : "com.sonyericsson.jenkins.plugins.bfa.model.indication.BuildLogIndication",
            "pattern" : "Execution  failed\\."
        }
    ],
    "modifications" : [ 
        {
            "user" : "abcv",
            "time" : ISODate("2019-03-26T07:07:59.872Z")
        }
    ],
    "lastOccurred" : ISODate("2019-09-16T05:38:45.623Z")
}

Spring静态库

public interface StatisticsRepository extends MongoRepository<Statistic, String> {

    Collection<Statistic> findByProjectNameAndBuildNumber(String projectName,
            Integer buildNumber);
}



@Document(value = "statistics")
public class Statistic implements Serializable {
    @Id
    private String id;
    private String projectName;
    private String buildNumber;
    private String master;
    private Long duration;
    private String result;
    @DBRef
    private List<FailureCause> failureCauses;
}


@Document(value = "failureCauses")
public class FailureCause implements Serializable {
    @Id
    private String id;
    private String name;
    private String description;
    private String comment;
    private Date lastOccurred;
    private List<String> categories;
    private List<Indication> indications;
    private List<FailureCauseModification> modifications;
}

查询统计信息输出

[
    {
        "id": "5de64e537c31473444743985",
        "projectName": "Test",
        "buildNumber": "5",
        "master": null,
        "duration": 490,
        "result": "FAILURE",
        "failureCauses": [
             {
                "id": null,
                "name": null,
                "description": null,
                "comment": null,
                "lastOccurred": null,
                "categories": null,
                "indications": [
                    {
                        "pattern": ".*some error.*",
                        "matchingString": "some error"
                    }
                ],
                "modifications": null
            }
        ]
    }
]
loknath:

重组Model类解决了这个问题,

下面是映射mongo db statistics收集架构的正确模型

故障原因模型

@Document(value = "failureCauses")
public class FailureCause implements Serializable {

    /**
     * 
     */
    private static final long serialVersionUID = 1L;

    /**
     * @param id            the id.
     * @param name          the name of this FailureCause.
     * @param description   the description of this FailureCause.
     * @param comment       the comment of this FailureCause.
     * @param lastOccurred  the time at which this FailureCause last occurred.
     * @param categories    the categories of this FailureCause.
     * @param indications   the list of indications
     * @param modifications the modification history of this FailureCause.
     */
    @Id
    private String id;
    private String name;
    private String description;
    private String comment;
    private Date lastOccurred;
    private List<String> categories;
    private List<Indication> indications;
    private List<FailureCauseModification> modifications;
}

统计模型

@Document(value = "statistics")
public class Statistic implements Serializable {

    /**
     * 
     */
    private static final long serialVersionUID = 1L;

    @Id
    private String id;
    private String projectName;
    private String buildNumber;
    private String master;
    private Long duration;
    private String result;
    private List<FailureCauses> failureCauses;
}

失败原因模型

public class FailureCauses implements Serializable {

    /**
     * 
     */
    private static final long serialVersionUID = 1L;

    @DBRef
    FailureCause failureCause;

    /**
     * @return the failureCause
     */
    public FailureCause getFailureCause()
    {
        return failureCause;
    }

    /**
     * @param failureCause the failureCause to set
     */
    public void setFailureCause(FailureCause failureCause)
    {
        this.failureCause = failureCause;
    }

}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

不使用DBRef映射集合(Spring Data MongoDB)

Spring Data MongoDB集合聚合

使用QueryDSL使用Spring Data MongoDB查询DBRef

使用Spring Data MongoDB指定分片集合

Spring Data MongoDB无法关闭MongoDB连接

在 Spring 数据的 RepositoryRestResource 中急切地加载 MongoDB @DBRef

Spring Data Couchbase无法加载视图

SortBy Spring Data MongoDb

Spring Data MongoDB-如果DbRef字段不存在,则添加到db

如何使用spring-data检索mongodb集合?

Spring Data MongoDB-与其他集合的聚合

Spring Data MongoDB Nosql注入

Spring Data MongoDB嵌入查询

Spring Data MongoDB搜索日期

Spring Data MongoDB:查询月份

spring-data-mongodb:findAll()带有输入文档列表和嵌入式DBRef文档的搜索参数

使用Jackson PTH和Spring Data MongoDB DBRef的Java到JSON序列化生成额外的目标属性

集合中的spring data jpa查询值

Spring Data mongo - Distinct 集合的问题

Spring Data Mongo-如何通过@DBRef字段的ID查询

使用Spring Boot MongoDb无法使用DBRef创建“空” MongoDb文档

使用 Spring 和 Spring Data 更新集合中的对象

spring-data-jpa :找到对集合 org.hibernate.HibernateException 的共享引用

Spring Data REST HATEOS:不是延迟加载

指定是否延迟加载Spring Data

避免在QueryDSL,Hibernate和Spring Data JPA中加载惰性集合

Spring Boot和Spring Data MongoDB:在ResponseBody中隐藏字段

Spring Data MongoDB在Spring 3.0上不起作用

Spring Data MongoDB:如何用Spring Aggregation描述聚合$ merge?