【发布时间】:2013-02-16 22:48:55
【问题描述】:
例如我有:
@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”的属性,而我想到它并针对一个名为“用户名”的属性进行编程。另请注意,我的 getter/setter 被称为:“getUsername()”和“setUsername(String value)”(自动生成)。
【问题讨论】:
标签: java hibernate hibernate-annotations