私はメモリ内のHSQLDBを使ってJUnitテストを実行しています。 DBにいくつかの値を挿入するメソッドがあり、メソッドが値を正しく挿入したかどうかを確認しています。挿入の順序は重要ではないことに注意してください。ユニットテスト中のエンティティとHibernateの比較
@Test
public void should_insert_correctly() {
MyEntity[] expectedEntities = new MyEntity[2];
// init expected entities
Inserter out = new Inserter(session); // out: object under test
out.insert();
List list = session.createCriteria(MyEntity.class).list();
assertTrue(list.contains(expectedEntities[0]));
assertTrue(list.contains(expectedEntities[1]));
}
問題が予想されるのidとの実際のIDが異なっているので、私は現実のものに期待するエンティティを比較することはできませんです。 MyEntityのsetId()はプライベート(設定IDを明示的に禁止するため)であるため、すべてのエンティティのIDを0に設定してそのように比較することはできません。
IDに関係なく2つの結果セットを比較するにはどうすればよいですか?
MyEntityクラスには、値に関する情報を追加してください。あなたにプライマリキーを与えるメンバーがいますか? – guerda