我有以下域模型。 NB杰克逊@JsonView的注释字段:只比较具体注释的属性与JaVers?
public interface JSONInvoiceBasicView {
}
public interface JSONInvoiceWithLinesView extends JSONInvoiceBasicView {
}
public interface JSONInvoiceWithLinesViewExt extends JSONInvoiceWithLinesView {
}
}
@PersistenceUnit(unitName="ERP_PU")
@Entity
@Table(name="INVOICE")
public class Invoice extends FrameworkEntity {
@Id
@SequenceGenerator(name = "PK_INVOICE_GEN", sequenceName = "PK_INVOICE_GEN", allocationSize=1)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "PK_INVOICE_GEN")
@Column(name = "ID")
@JsonView(JSONInvoiceView.JSONInvoiceBasicView.class)
private Long id;
@OneToMany(mappedBy="invoiceLine", fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JsonView(JSONInvoiceView.JSONInvoiceWithLinesView.class)
@JsonManagedReference
private List<InvoiceLine> lines = new ArrayList<InvoiceLine>();
@Temporal(TemporalType.DATE)
@Column(name = "DATE")
@JsonView(JSONInvoiceView.JSONInvoiceBasicView.class)
private Date startDate;
//...
}
@PersistenceUnit(unitName="ERP_PU")
@Entity
@Table(name="INVOICE_LINE")
public class InvoiceLine extends FrameworkEntity {
@Id
@Column(name = "ID")
@JsonView(JSONInvoiceView.JSONInvoiceWithLinesView.class)
private Long id;
@ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.PERSIST)
@JoinColumn(name="FK_INVOICE")
@JsonBackReference
private Invoice invoice;
@Column(name = "AMOUNT")
@JsonView(JSONInvoiceView.JSONInvoiceWithLinesView.class)
private BigDecimal amount;
@ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.PERSIST)
@JoinColumn(name="FK_GOOD")
@JsonView(JSONInvoiceView.JSONInvoiceWithLinesExtView.class)
private Good good;
//...
}
@PersistenceUnit(unitName="ERP_PU")
@Entity
@Table(name="GOOD")
public class Good extends FrameworkEntity {
@Id
@Column(name = "ID")
private Long id;
@Column(name = "DESCRIPTION", length=200)
private String description;
//...
}
所以 - 我的问题是,我检索整个对象图的唯一子,例如仅具有用@JsonView(JSONInvoiceView.JSONInvoiceWithLinesView.class)
注释的字段的发票和InvoiceLine实体,即,我不会继续,并且我不检索invoice.invoiceLine [i] .good实体。我的问题是 - 我可以修剪JaVers diff过程吗,我可以让JaVers只比较对象图的子集 - 那个注释过的子集,例如:与@JsonView(JSONInvoiceView.JSONInvoiceWithLinesView.class)
?
我的问题提到对实体领域的杰克逊@JsonView注解,但我想 - 如果JaVers支持观察性质的这样的过滤,那么这种过滤可以通过任何一组注释做approproate的领域/性质在 - 无论是杰克逊或自定义创建。
我听说过@DiffIgnore JaVers斜杠,我正在寻找这种机制的推广和精简。
我的场景是 - 我检索子图,我发送ir到Angular fronent,然后从Angular获得更新子图,我想将它合并回到我的后端。
你实际上并不想要的一切记录的大多数时候,但只有基本属性(肯定我们的情况下)。确保开发人员记得每次添加特定属性/获取者时,都会自动重新启动计算机以安装更新。不是最好的。 – Stef