我的所有字段都有前缀.我怎么能告诉它冬眠



例如,我有:

  @Column(name = "username")
  private String m_username;

请注意,@Column注释仅影响数据库列名。

Hibernate仍然认为属性的名称是"m_username"。

如何告诉Hibernate属性名称只是"username"?

请告诉我有一种方法。。。

编辑:我删除了代码示例中的@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();

原因很可能是hibernate只"知道"一个名为"m_username"的属性,而我认为它是针对一个名"username"属性进行编程的。还要注意,我的getter/setter被称为:"getUsername()"one_answers"setUsername(Stringvalue)"(自动生成)。

为什么要使用AccessType.PROPERTY

删除它,它就会被"字段"访问。

不要混合字段和属性注释。坚持其中一个。

据我所知,我们不能。

hibernate查找方法的方式仍然存在一个问题对于CCD_ 3。

假设您有一个名为"mProperty"的property(第一个小写,第二个大写,其余都无关紧要)。不是accessor源代码中的方法将是getMPropertysetMProperty

BasicPropertyAccessor.getterMethod就是这样实现的。

我在这里找到了一条线索:https://forum.hibernate.org/viewtopic.php?f=1&t=943110

但是这个线程已经有7年的历史了,我不知道如何将其应用于基于注释的配置(我没有xml配置文件)。

相关内容

  • 没有找到相关文章

最新更新