Javers查询语言中的版本

时间:2015-11-28 16:28:05

标签: java javers

我有一个关于从javers使用JQL的问题 如果我有三个模型x,y和z有关系:

型号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}

我的问题是如何通过 test 从三个州搜索中获得更改?

1 个答案:

答案 0 :(得分:0)

通常,在JQL中,实体没有类似SQL的连接。

因此,如果你有2个实体(X和Y),加上OneToMany关系,你就不能这样查询:&#39;给我Y的所有快照,这些快照加入我的实体X,ID为1&#39;。

但是,当您略微更改模型时,您可以实现此目的。如果 Y将是实体X拥有的ValueObject (没有标识的对象),那么您可以在JQL中查询:&#39;给我在我的实体X拥有的ValueObject Y上完成的所有快照(或更改)身份证1&#39;。