、それは与えていない単一の結果、同社で見られるのと同じ疑問を持つ特定のリビジョンにより最大リビジョンを取得します。指定されたリビジョン未満のすべてのリビジョンを返します。
私のコードは
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);
}
そして
@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;
}
を教えてください以下の通りである私は与えられたリビジョンに未満のみ最大のリビジョンを取得するために使用するために必要なものがあります。
結果または実際のエンティティインスタンスとしてRevisionNumberを取得する予定ですか?さらに、IDKはこれが 'computeAggregationInInstanceContext'ですか? '#max()'メソッドは射影クエリに対してのみ適用できます。 – Naros
いいえ、私は最大リビジョンだけを望んでいません。私は各エンティティの最大リビジョンが指定されたリビジョン番号以下であることを確認しようとしています。私は自分の質問に似ている私の質問へのリンクを追加しました。しかし、ここでは** Join **を使う必要があります。そして、Joinを追加した後、複数のレコードを与えます。 –
** ** computeAggregationInInstanceContext **この[Link_1](https://hibernate.atlassian.net/browse/HHH-7827)でこれを見つけました。この[Link_2](http://stackoverflow.com/questions/) 25723323/find-max-revision-of-each-entity-less-than-given-to-given-revision-with-enver) –