私の問題は分離天体にあります...
私は現在、HibernateでSpringを使用しています。
私は主キーを文字列として持つマップされたオブジェクトを持っています(私はそれが悪いことを知っています...しかしコードのリファクタリングには数ヶ月かかるでしょう)、そしてそれを永続させたいです。(2つの属性だけでオブジェクトを簡略化しました)
@Id
private String id;
private String pattern;
たとえば、次のようなものを追加したいと思います。
["id": "myFirstPattern"、 "pattern":"。*"]
主キーがすでに設定されていることに注意してください。それに関する問題は、私が永続化しようとすると、Hibernateがこのオブジェクトをコンテキスト内の任意のオブジェクトにリンクしようとし(主キーのため)、リンクがないために失敗することです。デタッチオブジェクトエラーをスローします。
私はいくつかの調査を行い、オブジェクトが利用できない場合でも、merge()が持続して更新されるため、merge()で十分であるという結論に達しました。ただし、これはかなり汚い回避策であることがわかり、この問題に対する他の解決策があるかどうかを確認したいと思いました。
ヘルパーレイヤーがあることを考慮に入れてください。そのため、サービスレイヤーはHibernateDaoレイヤーと直接連携しません。したがって、同じマージDAOメソッドを呼び出す「persist」メソッドと「update」メソッドを追加することで、これを「マスク」できます。
ありがとう、フラビオ。