org.hibernate.MappingException:未知实体:在spring orm中

我得到以下exception

org.hibernate.MappingException:未知实体:com.sample.Student

我在Stackoverflow上看到了很多相同问题的答案,但是他们都建议使用来自javax.persistence而不是hibernate的@Entity注释,在我的例子中我只使用它来自javax.persistence但仍然得到这个exception。

我的POJO课程

package com.sample; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Table; @Entity @Table public class Student { @Id int id; public int getId() { return id; } public void setId(int id) { this.id = id; } String firstName; String lastName; public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } } 

和我的Manger课程

  package com.sample; import java.util.Properties; import org.hibernate.SessionFactory; import org.springframework.jdbc.datasource.DriverManagerDataSource; import org.springframework.orm.hibernate3.HibernateTemplate; import org.springframework.orm.hibernate3.LocalSessionFactoryBean; public class ORMManager { /** * @param args */ public static void main(String[] args) { DriverManagerDataSource ds = new DriverManagerDataSource(); ds.setUrl("jdbc:oracle:thin:@localhost:1521:XE"); ds.setDriverClassName("oracle.jdbc.driver.OracleDriver"); ds.setUsername("system"); ds.setPassword("tiger"); LocalSessionFactoryBean lsfb = new LocalSessionFactoryBean(); lsfb.setDataSource(ds); HibernateTemplate template = new HibernateTemplate(); Properties prop = new Properties(); prop.put("hibernate.dialect", "org.hibernate.dialect.OracleDialect"); prop.put("hibernate.show_sql", "true"); prop.put("hbm2ddl.auto", "create"); lsfb.setHibernateProperties(prop); try { lsfb.afterPropertiesSet(); } catch (Exception e) { e.printStackTrace(); } template.setSessionFactory((SessionFactory)lsfb.getObject()); template.afterPropertiesSet(); Student s = new Student(); s.setFirstName("pallavi"); s.setLastName("sing"); template.save(s); System.out.println("done"); } } 

请帮我解决这个问题

你试图混合两件事

注释

LocalSessionFactoryBean的

使用LocalSessionFactoryBean的子类

AnnotationSessionFactoryBean

替换这个

LocalSessionFactoryBean lsfb = new LocalSessionFactoryBean();

  AnnotationSessionFactoryBean lsfb = new AnnotationSessionFactoryBean(); Class [] annotatedClasses = {Student.class}; lsfb.setAnnotatedClasses(annotatedClasses); 

要么

  AnnotationSessionFactoryBean lsfb = new AnnotationSessionFactoryBean(); annotationSessionFactoryBean.setPackagesToScan(new String[]{"com.sample"}); 

看到这个答案

替换LocalSessionFactoryBean lsfb = new LocalSessionFactoryBean(); 以下内容

  AnnotationSessionFactoryBean annotationSessionFactoryBean = new AnnotationSessionFactoryBean(); annotationSessionFactoryBean.setPackagesToScan(new String[]{"com.sample"});