The same question I found with this Link
It is working fine but the problem is while I am using Join, it is not giving single result, Its returning all Revision less than of given revision.
My code is as below
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);
}
And
@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;
}
Please tell me is there anything that I need to use to get only max revision Less than to given revision.