我的数据库中有一个 tlogin 表,它有一个String
类型的主键,称为Login。这个密钥不是由 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,如果最终用户使用EXAMPLE@hotmail.com登录,它将从数据库中检索对象,但使用EXAMPLE@hotmail.com键。我想允许用户访问该应用程序,但我想获取他的用户名,因为它存储在数据库中。
我必须为此实施标准吗?