У меня проблема с Hibernate, когда мои доменные объекты выполняют настройку аннотаций для 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.