2015-11-28 68 views
0

我使用JQL從javers 如果我有三個型號的X,Y和Z的關係就一個問題:版本Javers查詢語言

X型號:

@GeneratedValue(strategy = GenerationType.IDENTITY) 
    @Column(name = "x_ID") 
    private Long xId; 

    @Column(name = "A") 
    private string a; 

    @JsonIgnore 
    @OneToMany(mappedBy = "x") 
    private List<y> yList; 

型號Z :

@GeneratedValue(strategy = GenerationType.IDENTITY) 
    @Column(name = "z_ID") 
    private Long zId; 

    @JsonIgnore 
    @OneToMany(mappedBy = "z") 
    private List<y> yList; 

型號Y:

@Id 
    @GeneratedValue(strategy = GenerationType.IDENTITY) 
    @Column(name = "y_ID") 
    private Long yId; 

    @ManyToOne(fetch = FetchType.LAZY) 
    @PrimaryKeyJoinColumn(name = "x_ID") 
    private x x1; 

    @Column(name = "x_ID") 
    private Long xId; 

    @ManyToOne(fetch = FetchType.LAZY) 
    @PrimaryKeyJoinColumn(name = "z_ID") 
    private z z1; 

    @Column(name = "z_ID") 
    private Long zId; 

這裏是什麼保存在快照表樣本:

對於x狀態:

{ "A": "test", "y": [],"xId": 1} 

爲Z狀態:

{ "y": [],"zId":1} 

y的狀態:

{ "yId": 1, ,"xId": 1, "zId":1} 

我的問題是如何從三態獲得變化搜索測試

回答

0

通常,在JQL中不存在針對實體的類似於SQL的聯接。因此,如果你有2個實體(X和Y),加入了OneToMany關係,你不能這樣查詢:'給我Y的所有快照,這些快照是以ID 1加入到我的實體X中的。

但是,您可以在稍微更改模型時實現此目的。如果Y是實體X所擁有的ValueObject(無身份對象),那麼您可以在JQL中進行查詢:'給我所有在我的實體X擁有的ValueObject Y上完成的所有快照(或更改),ID爲1'。