在使用spring注解整合hibernate时出现"org.hibernate.MappingException: Unknown entity: com.ssh.entry.Product“异常的问题。
最后找到了问题,总结一下
1.spring整合hibernate,取代*.hbm.xml配置文件
在applicationContext.xml文件中配置方式
<!-- 创建sessionFactory -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<!-- 使用统配符 配置hibernate hbm配置文件 -->
<property name="mappingLocations">
<value>classpath*:com/jxc/entity/*.hbm.xml</value>
</property>
<!--hibernate属性配置 -->
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_sql">true</prop>
</props>
</property>
</bean>
上面是以前的代码拿来对比下
spring整合hibernate,使用注解的方式
在applicationContext.xml文件中配置方式
<!-- 配置Hibernate的SessionFactory -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
<!-- 注入连接池 -->
<property name="dataSource" ref="dataSource"/>
<!-- 扫描并加载注解过的实体类 -->
<property name="packagesToScan" value="com.kaspar.product.model"/>
<!-- 配置Hibernate属性 -->
<property name="hibernateProperties">
<props>
<prop key="hibernate.show_sql">true</prop><!-- 是否展示SQL -->
<prop key="hibernate.format_sql">true</prop><!-- 输出底层sql语句格式 -->
<prop key="hibernate.hbm2ddl.auto">update</prop><!-- 是否自动创建表结构 -->
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
</props>
</property>
</bean>
上面其中一段或者替换为:
<!-- 配置数据库常用参数 -->
<property name="packagesToScan">
<list>
<value>com.kaspar.product.model</value>
</list>
</property>
这是第二种使用注解的方式。两种方式只有在引入映射文件或者注解类时候有差别 。
第一次整合注解时候,出现: "org.hibernate.MappingException: Unknown entity: com.ssh.entry.Product"
这里引入路径,只需要进入到包名就可以。
原文:https://www.cnblogs.com/kaspar/p/12016618.html