hibernate annotation运行时出现org.hibernate.HibernateException: 'hibernate.dialect' must be set whe
发布网友
发布时间:2022-05-05 16:57
我来回答
共5个回答
热心网友
时间:2022-05-05 18:26
你的sessionFactory是这样设的吗?
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">${hibernate.dialect}</prop>
<prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
<!-- 批量跟新或删除时使用 -->
<prop key="hibernate.jdbc.batch_size">${hibernate.jdbc.batch_size}</prop>
<!-- hibernate事物隔离级别 值: 1 2 4 8 (效率由高到低) 如果不设置则默认依赖数据库
1 - read_uncommitted 会出现dirty read, phantom-read(幻读), non-repeatable read问题
2 - read_committed(hibernate,oracle默认级别) 不会出现dirty read,因为只有另一个事务提交才会读出结果,但仍会出现 non-repearable read, phantom-read
4 - repeatable_read(MySQL默认级别) 可重复读,通过向数据上加锁实现
8 - serializable 序列化,解决一切问题
-->
<prop key="hibernate.collection.isolation">${hibernate.collection.isolation}</prop>
<!-- 二级缓存 查询缓存 -->
<prop key="hibernate.cache.provider_class">${hibernate.cache.provider_class}</prop>
<prop key="hibernate.cache.use_query_cache">${hibernate.cache.use_query_cache}</prop>
<prop key="hibernate.cache.use_second_level_cache">${hibernate.cache.use_second_level_cache}</prop>
</props>
</property>
热心网友
时间:2022-05-05 19:44
将new Configuration().buildSessionFactory() 改为new Configuration().configure().buildSessionFactory() 试试
热心网友
时间:2022-05-05 21:19
你的hibernate.perperty中没有设置“hibernate.dialect”这项吗?
参看:
1.hibernate.dialect org.hibernate.dialect.MySQLDialect
2.hibernate.connection.driver_class com.mysql.jdbc.Driver
3.hibernate.connection.url jdbc:mysql://localhost:3306/test
4.hibernate.connection.username root
5.hibernate.connection.password dodo
参考资料:http://softor.javaeye.com/blog/750249
热心网友
时间:2022-05-05 23:10
同意2楼,查看是否是方言配对了,不同数据库的方言是不同的,hibernate就是通过方言来分辨不同数据库的