DB にLoginString
というタイプの主キーを持つ tlogin テーブルがあります。このキーは、アプリケーションによって割り当てられるため、Hibernate によって自動的に生成されるわけではありません。ここにマッピングがあります:
<id name="_Login" column="Login" unsaved-value="null">
<generator class="assigned" />
</id>
私の問題は、ユーザーがアプリケーションにログインしたときに発生します。Hibernateget
とload
メソッドは、ユーザーがログイン フォームに入力したキーを持つオブジェクトを返すようです。私は次のコードを試しています:
@Override
public CLogin loadLogin(String userName) throws AccessException {
try {
Session sesion = this._dao.init();
CLogin login = (CLogin) sesion.get(CLogin.class, userName);
return login;
} catch (HibernateException e) {
throw new AccessException(e.getMessage(), e);
}
}
たとえば、ユーザー名がexample@hotmail.comとしてDB に保存されている場合、エンド ユーザーがEXAMPLE@hotmail.comでログインすると、DB からオブジェクトが取得されますが、EXAMPLE@hotmail.comキーが使用されます。ユーザーにアプリへのアクセスを許可したいのですが、DBに保存されているユーザー名を取得したいです。
そのための基準を実装する必要がありますか?