0 0

hibernate映射表报错 unknown Oracle major version [0]10

我在MyEclipse中通过hibernate映射表的时候总是报错

在“Generating Artifacts”期间发生了内部错误。
unknown Oracle major version [0]

我查看了MyEclipse的日志文件信息如下:
!ENTRY org.eclipse.core.jobs 4 2 2008-11-08 09:56:42.031
!MESSAGE 在“Generating Artifacts”期间发生了内部错误。
!STACK 0
org.hibernate.HibernateException: unknown Oracle major version [0]
at org.hibernate.dialect.DialectFactory$1.getDialectClass(DialectFactory.java:135)
at org.hibernate.dialect.DialectFactory.determineDialect(DialectFactory.java:65)
at org.hibernate.dialect.DialectFactory.buildDialect(DialectFactory.java:39)
at org.hibernate.cfg.SettingsFactory.determineDialect(SettingsFactory.java:426)
at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:128)
at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2005)
at com.genuitec.eclipse.hibernate.wizards.MEJDBCMetaDataConfiguration.readFromJDBC(MEJDBCMetaDataConfiguration.java:72)
at com.genuitec.eclipse.hibernate.wizards.GenerateArtifactsJob$7.execute(GenerateArtifactsJob.java:877)
at org.hibernate.console.execution.DefaultExecutionContext.execute(DefaultExecutionContext.java:65)
at org.hibernate.console.ConsoleConfiguration.execute(ConsoleConfiguration.java:91)
at com.genuitec.eclipse.hibernate.wizards.GenerateArtifactsJob.buildConfiguration(GenerateArtifactsJob.java:858)
at com.genuitec.eclipse.hibernate.wizards.GenerateArtifactsJob.run(GenerateArtifactsJob.java:405)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)

IDE:MyEclipse 7.0
我查了网上的资料,有的说是在spring中添加方言,但还是出了问题,
我的数据库是Oracle9i2,有的说是把驱动换成ojdbc14.jar,但是问题还是没有解决。
这个问题困扰了我很久 ,不知道哪位前辈能帮我解决一下,谢谢。

问题补充:
我spring原来的配置是
<prop key="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</prop> 
我改成了
<prop key="hibernate.dialect">org.hibernate.dialect.Oracle9iDialect</prop> 
问题还是没有解决。
问题补充:
我只是想用IDE通过hibernate映射表,自动生成dao和hbm.xml文件,不用启动服务器吧。
补充一下,我的tomcat是版本是5.5.
问题补充:
我做的是ssh。我把hibernate放在了spring中进行管理。

以下是我的spring配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">


<bean id="DataSource"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName"
value="oracle.jdbc.driver.OracleDriver">
</property>
<property name="url"
value="jdbc:oracle:thin:@127.0.0.1:1521:db">
</property>
<property name="username" value="test"></property>
<property name="password" value="admin"></property>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="DataSource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.Oracle9iDialect</prop>
</props>
</property>
</bean></beans>
2008年11月08日 10:09

11个答案 按时间排序 按投票排序

0 0

采纳的答案

Hibernate插件不从Spring配置文件中读取信息,而是使用自己的配置文件,明白了这个你就可以找到这个配置文件对方言进行修改了,呵呵

2008年11月08日 10:52
0 0

如果你是使用MyEclipse的话,在你的工程根目录下面会有一个.myhibernatedata文件,打开这个,看看其中是否有类似的configFile=/你的工程名/src/applicationContext.xml,Hibernate插件就是根据这句知道从哪里找配置项目的,检查一下这个吧,我知道你用SSH框架,但是eclipse插件不管你是不是SSH,它只负责根据配置的文件去特定地方找配置项目

2008年11月08日 11:08
0 0

呵呵,不好意思,刚看明白你这个问题的意思,原来不是做web开发,而是想用MyEclipse的Hibernate插件功能,这个也简单,因为Hibernate插件使用的另外的配置文件,不会从你这个Spring配置文件中读取信息的,你到你的工程目录下找一个类似.hibernate-console.properties的文件,好像是点儿打头的文件名,eclipse中看不见的,到这个里面把

hibernate.dialect=org.hibernate.dialect.Oracle9iDialect
改好就行了,如果没有自己手动添加

2008年11月08日 10:48
0 0

修改后,重新发布一下,如果还有问题,看一下你的数据库驱动.

2008年11月08日 10:47
0 0

老大,修改了配置文件需要重启服务器,最好重新发布一下,目前所有的javaee都不支持热部署配置文件的,你确定你重新发布重启了吗?

2008年11月08日 10:41
0 0

这个还可能跟你用的web容器的版本有关,你用的tomcat还是jboss,版本?

2008年11月08日 10:26
0 0


向下面这样试 试
<property name="hibernateProperties">
            <props>
                <prop key="hibernate.jdbc.batch_size">20</prop>
                <prop key="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</prop>
                <prop key="hibernate.cache.use_query_cache">true</prop>
               <!-- Set dialect to avoid "org.hibernate.HibernateException: unknown Oracle major version [0]" in some environment, e.g. Oracle 9i with WebSphere 5.x -->
                <prop key="hibernate.dialect">org.hibernate.dialect.Oracle9iDialect</prop>
            </props>

        </property>

2008年11月08日 10:21
0 0

http://topic.csdn.net/u/20070910/10/0bdd6ded-de25-4363-9aa4-f74c20aba54a.html
跟你问题一样,在Spring的sessionFactory配置中加入

<prop key="hibernate.dialect">org.hibernate.dialect.Oracle9iDialect</prop>  

就一切OK了

2008年11月08日 10:21
0 0

	<!-- Hibernate SessionFactory -->
	<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"
			p:dataSource-ref="dataSource">
		<property name="hibernateProperties">
			<props>
				<prop key="hibernate.dialect">org.hibernate.dialect.Oracle9iDialect</prop>
			</props>
		</property>
	</bean>

2008年11月08日 10:18
0 0

数据库方言指定为

org.hibernate.dialect.Oracle9iDialect

2008年11月08日 10:16
0 0

第一种:
换一下数据库驱动! 右键确定你的项目属性中有加载相应的驱动包
第二种:
1. 在生成表映射文件时,主键生成方式选择”assigned”(由外部分配).
2. 如果选”native”,在数据库中主键生成方式选择”Autoincrement”.

2008年11月08日 10:16

相关推荐

Global site tag (gtag.js) - Google Analytics