2015-11-28 65 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'。