Hibernate 使用Spring can';找不到域对象

Hibernate 使用Spring can';找不到域对象,hibernate,spring,orm,configuration,annotations,Hibernate,Spring,Orm,Configuration,Annotations,我在Hibernate中看到我的域对象为Hibernate执行纯注释配置时遇到问题 我要走了 org.hibernate.hql.ast.QuerySyntaxException:未映射用户[来自用户u,其中u.userName=:userName] 我认为需要做的就是为sessionFactory添加packagesToScan属性,并将@Entity添加到域对象。我还缺什么 <!-- Hibernate SessionFactory --> <bean id="sessio

我在Hibernate中看到我的域对象为Hibernate执行纯注释配置时遇到问题

我要走了

org.hibernate.hql.ast.QuerySyntaxException:未映射用户[来自用户u,其中u.userName=:userName]

我认为需要做的就是为sessionFactory添加
packagesToScan
属性,并将
@Entity
添加到域对象。我还缺什么

<!-- Hibernate SessionFactory -->
<bean id="sessionFactory"
    class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="packagesToScan" value="com.trx.sample.domain" />
    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">${hibernate.dialect}</prop>
            <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
            <prop key="hibernate.generate_statistics">${hibernate.generate_statistics}</prop>
        </props>
    </property>
    <property name="eventListeners">
        <map>
            <entry key="merge">
                <bean
                    class="org.springframework.orm.hibernate3.support.IdTransferringMergeEventListener" />
            </entry>
        </map>
    </property>
</bean>

<context:annotation-config />
<tx:annotation-driven />
-

-

编辑:


我不知道它是否有什么不同,但我正在通过eclipse在tomcat实例上运行它。

您必须在SessionFactoryBean中设置annotatedClass或packagesToScan属性。请看

只是一个想法:
用户
是一些数据库的管理员,这可能会阻止Hibernate被正确初始化。我建议逃离它:

package com.trx.sample.domain;

@Entity
@Table(name = "`user`")
public class User extends BaseEntity implements UserDetails {

  private static final long serialVersionUID = 1L;

  @Column(name = "user_name")
  private String userName;
  private String password;
  private boolean enabled;
  private String roles;

  ...
}

当我回答这个问题时,羞愧地低下了头。@Entity导入不正确

使用此特定域对象

import org.hibernate.annotations.Entity;
它应该在什么时候使用

import javax.persistence.Entity;

你会错过这个吗


我正在这么做。看到帖子了。对不起,我没看到。我们在应用程序中使用annotatedClass,它是功能性的。我试图寻找packageToScan没有找到类的原因,但没有成功。尝试为登录Hibernate或debug Springs AnnotationSessionFactoryBean设置调试级别。Hibernate可能使用其他类路径。Hibernate在启动时非常冗长,在映射时应该提到每个类。它说什么?它不表示它在映射任何东西。谢谢你的想法。但似乎没有解决它。我只知道这是我忽略了的一件愚蠢的小事,一旦我找到它,我会觉得自己像个白痴。@Josh,那是另外一件事:)很抱歉说了这么明显的话,但是在创建时你没有收到任何特别的信息吗?
User
是唯一无法识别的实体吗?同一软件包中是否有其他实体被正确识别?
package com.trx.sample.domain;

@Entity
@Table(name = "`user`")
public class User extends BaseEntity implements UserDetails {

  private static final long serialVersionUID = 1L;

  @Column(name = "user_name")
  private String userName;
  private String password;
  private boolean enabled;
  private String roles;

  ...
}
import org.hibernate.annotations.Entity;
import javax.persistence.Entity;