la même question que j'ai trouvé cette LinkObtenez la révision max moins à une révision particulière avec Envers
Il fonctionne bien, mais le problème est alors que je me sers Rejoignez, il ne donne pas seul résultat, Son renvoyant toutes les Révisions moins de révision donnée.
Mon code est comme ci-dessous
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);
}
Et
@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;
}
S'il vous plaît, dites-moi est quelque chose que je dois utiliser pour obtenir que la révision max Moins de révision donnée.
Attendez-vous à ce que le numéro de révision soit le résultat ou l'instance d'entité réelle? En outre, IDK ce que ce 'computeAggregationInInstanceContext' est? La méthode '#max()' ne s'applique qu'aux requêtes de projection. – Naros
Non, je ne veux pas seulement une révision max. J'essaie de trouver une révision maximale de chaque entité inférieure ou égale au numéro de révision donné. J'ai ajouté un lien à ma question qui est similaire à ma question. Mais ici, je dois utiliser ** Join ** et après avoir ajouté join, il donne plusieurs enregistrements. –
Et ** computeAggregationInInstanceContext ** Je l'ai trouvé avec ce [Link_1] (https://hibernate.atlassian.net/browse/HHH-7827]) et à partir de ce [Link_2] (http://stackoverflow.com/questions/ 25723323/find-max-revision-of-each-entity-less-than-or-equal-to-given-revision-with-enver) –