我遇到了Hibernate的问题,看到我的域对象为Hibernate执行纯注释配置。Spring的Hibernate注解配置无法找到域对象
我越来越
org.hibernate.hql.ast.QuerySyntaxException: User is not mapped [from User u where u.userName=:userName]
我以为所有的都必须做的是添加packagesToScan
财产为SessionFactory并添加@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 />
-
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;
...
}
-
@MappedSuperclass
public class BaseEntity implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue
private Long id;
public void setId(Long id) {
this.id = id;
}
public Long getId() {
return id;
}
public boolean isNew() {
return (this.id == null);
}
}
-
[INFO] building session factory
[DEBUG] Session factory constructed with filter configurations : {}
[DEBUG] instantiating session factory with properties: {...}
[DEBUG] initializing class SessionFactoryObjectFactory
[DEBUG] registered: 402881e52a6b3159012a6b3163e40000 (unnamed)
[INFO] Not binding factory to JNDI, no JNDI name configured
[DEBUG] instantiated session factory
[DEBUG] Checking 0 named HQL queries
[DEBUG] Checking 0 named SQL queries
编辑:
不知道它有所作为,但我通过eclipse在tomcat实例上运行它。
Hibernate是非常详细的,当它启动时,并且当它被映射应提到每个类。它说什么? – skaffman 2010-08-12 16:48:23
它并不表示它映射任何东西。 – Josh 2010-08-12 22:10:38