Die gleichen Frage, die ich mit diesem LinkErhalten max Revision weniger als zu einer bestimmten Revision mit envers
Es fand funktioniert gut, aber das Problem ist, während ich bin mit Mitglied werden, es ist nicht einziges Ergebnis geben, Seiner Alle Revisionen werden weniger als die angegebene Revision zurückgegeben.
Mein Code ist wie unten
AuditReader reader = AuditReaderFactory.get(session);
AuditQueryCreator audQueryCreator = reader.createQuery();
AuditQuery query_cusTagInst = audQueryCreator.forEntitiesAtRevision(CustomTagInstance.class, revision_Id)
.add(AuditEntity.revisionNumber().le(revision_Id))
.traverseRelation("instrument", JoinType.INNER)
.add(AuditEntity.revisionNumber().maximize().computeAggregationInInstanceContext())
.add(AuditEntity.property("instrumentId").eq(id));
CustomTagInstance customTagInst = null;
List list_cusTagInst = query_cusTagInst.getResultList();
for(int i=0; i<list_cusTagInst.size(); i++){
customTagInst = (CustomTagInstance) list_cusTagInst.get(i);
}
Und
@Audited
@Table(name = "CUSTOM_TAG_INSTANCE")
public class CustomTagInstance implements java.io.Serializable {
private Long tagInstanceId;
private Instrument instrument;
@Id
@Column(name = "TAG_INSTANCE_ID", unique = true, nullable = false, precision = 22, scale = 0)
public Long getTagInstanceId() {
return this.tagInstanceId;
}
public void setTagInstanceId(Long tagInstanceId) {
this.tagInstanceId = tagInstanceId;
}
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "INSTRUMENT_ID")
public Instrument getInstrument() {
return this.instrument;
}
public void setInstrument(Instrument instrument) {
this.instrument = instrument;
}
Bitte sagen Sie mir ist es etwas, das ich brauche, um bestimmte Revision zu erhalten, verwenden Sie nur max Revision weniger als.
Erwarten Sie, die RevisionNumber als das Ergebnis oder die tatsächliche Entitätsinstanz zu erhalten? Desweiteren, was ist dieser 'computeAggregationInInstanceContext'? Die '#max()' Methode ist nur für Projektionsabfragen anwendbar. – Naros
Nein, ich möchte nicht nur die maximale Revision. Ich versuche eine maximale Revision jeder Entität zu finden, die kleiner oder gleich einer bestimmten Revisionsnummer ist. Ich habe einen Link zu meiner Frage hinzugefügt, der meiner Frage ähnlich ist. Aber hier muss ich ** Join ** verwenden und nach dem Hinzufügen von Join gibt es mehrere Datensätze. –
Und ** computeAggregationInInstanceContext ** Ich habe es gefunden mit [Link_1] (https://hibernate.atlassian.net/browse/HHH-7827) und von diesem [Link_2] (http://stackoverflow.com/questions/ 25723323/find-max-revision-von-jeder-einheit-weniger-als-gleich-gegeben-revision-mit-enver) –