例如我有:
@Column(name = "username")
private String m_username;
请注意,@Column 注释只影响数据库列名。
Hibernate 仍然认为属性的名称是'm_username'。
如何告诉 Hibernate 属性名称只是“用户名”?
请告诉我有一种方法可以做到这一点......
编辑:我在我的代码示例中删除了 @AccessType 注释,因为它与这个问题无关。
更新:将所有内容切换到字段访问后,会发生此异常:
org.hibernate.QueryException: could not resolve property: username of: mypackage.model.User
它发生在这里:
Criteria criteria = session.createCriteria(User.class);
criteria.add(Restrictions.eq("username", username));
User result = (User) criteria.uniqueResult();
原因很可能是休眠只“知道”名为“m_username”的属性,而我想到它并针对名为“username”的属性进行编程。另请注意,我的 getter/setter 被称为:“getUsername()”和“setUsername(String value)”(自动生成)。