を使用せずに完全に正常に動作してsave()メソッド春データJPAでsave()メソッド春データJPA - 返されるエンティティの下
/**
* Saves a given entity. Use the returned instance for further operations as the save operation might have changed the
* entity instance completely.
*
* @param entity
* @return the saved entity
*/
<S extends T> S save(S entity);
ともリソース以下のJavadocの特定は明らかに我々が必要と述べています返されたオブジェクトを使用して、保存されたエンティティに対してさらに操作を実行するようにします。上記のコードは、戻り値の型なしで働いているのはなぜ
Why to use returned instance after save() on Spring Data JPA Repository?
しかし、私の次のコードで
public void createEmployee(Employee employee) throws Exception {
try {
employee.setEmployeeName("alan");
employeeRepo.save(employee);
employee.setEmployeeType("Permanent");
employeeRepo.save(employee);
} catch (Exception e) {
throw new Exception(e);
}
}
- ずにエンティティが正常に動作します()セーブマイデータは完全に永続化されていますが、正しい永続性を保証するために返されたエンティティを使用する必要があるという印象を受けました。
私は間違いなく間違っていますか間違っていますか?私は春のデータが新しく、現在の多くのアプリケーションがCRUDに基づいているため、save()メソッドを完全に理解したいと考えています。ありがとう。
1. "新しいエンティティインスタンスの場合、save()メソッドが同じインスタンスを返すので実際には問題ありません" - どのような状況で差異インスタンスが作成されたのかを明確にしてください。 2.「アクティブトランザクション」とはどういう意味ですか....私は春データを使用していますが、トランザクションは春データによって管理されているので、おそらく混乱しています。誰もがアクティブなトランザクションについて語りますが、Springデータのコンテキストではそれはまさにそれですか?ありがとう – HopeKing
Springデータはもちろん、この 'EntityManager.merge(..)vs' EntityManager.persist(..)に対する抽象化でしかないので、基本的なJPA APIを理解する必要があります。 **ポイント1 **:既存のインスタンスを更新する場合:http://stackoverflow.com/a/1070629/1356423 **ポイント2 **。トランザクションは通常、サービスレイヤーで定義されます。http://stackoverflow.com/a/19723602/1356423 –
優れたリソースに多くの感謝をします。また、なぜ私の上記のコードは、保存で戻り値の型なしで動作しますか? – HopeKing