0

私のプロジェクトでは、C# で NHibernate & Net Persistence API を使用しています。次の Save メソッドがあります。

        public void Save(IGenericEntity entity)
        {
            _entityManager = GetEm();
            _entityManager.GetTransaction().Begin();
            _entityManager.Persist(entity);
            _entityManager.Flush();            
            _entityManager.GetTransaction().Commit();            
            _entityManager.Clear();
        }

ここで、エンティティにフィールド ID (db から自動生成された値) があるとします。今、私はこのエンティティを保存しています。自動生成された ID または保存されたエンティティのいずれかが必要ですが、.Commit() の戻り値の型は void です。誰でもこれについて案内できますか?

Javaで休止状態を使用しました.save()を呼び出すと、保存されたエンティティが返されます(自動生成されたID付き)。上記のコンテキストで同じことを達成するにはどうすればよいですか?

4

1 に答える 1

3

#flush の呼び出し後、エンティティには ID が含まれます。このテストを試してください:

Save( entity );
assertNotNull( entity.getId() );
于 2012-12-14T21:49:35.540 に答える