statistic
中位于顶层。不作为子文档failureCauses
中的字段。 我在名为failurecauses和statistics的mongo数据库中有两个集合。每个统计信息都有对失败原因列表的引用。
我有另一个带有spring-boot-starter-data-MongoDB]的Spring引导应用程序,我试图在其中加载统计信息。
在这里我可以找到统计信息元素,但未加载引用失败原因。
有人可以帮助我。
统计集合条目
{ "_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:" } ] } ] }
FailureCauses收集条目
{ "_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 StaticsRepository
public interface StatisticsRepository extends MongoRepository<Statistic, String> { @Query("{'failureCauses' : {'projectName' : ?0 , 'buildNumber' : ?1 }}") 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
}
]
}
]
我在mongo数据库中有两个集合,分别名为failurecauses和statistics。每个统计信息都有对失败原因列表的引用。我还有一个带有spring-boot -...]的Spring boot应用程序。
statistic
记录,@Query
参数应作如下修改:public interface StatisticsRepository extends MongoRepository<Statistic, String> {
@Query("{'projectName' : ?0 , 'buildNumber' : ?1 }")
Collection<Statistic> findByProjectNameAndBuildNumber(String projectName,
Integer buildNumber);
}
statistic
中位于顶层。不作为子文档failureCauses
中的字段。 statistic
中位于顶层。不作为子文档failureCauses
中的字段。