我遇到了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