AppFuse3.5对接Oracle数据库
作者:网络转载 发布时间:[ 2015/8/7 10:10:03 ] 推荐标签:数据库 测试开发技术
问题2:数据库脚本无法执行。到myprojectcore arget目录下,找到schema.sql。打开查看,发现一切正常,你到sqlplus下面执行这个sql文件也没有问题。
文件发生的原因是这个sql不是由sqlplus执行的,而是2.有hibernate执行的!hibernate执行sql语句的时候,不能有段落结束符合“;”。所以报错!解决办法是在appfuse-3.5.0.pom中的oracle profile中增加一个设置,把段落分割符设置成空:
<hibernate.export.schema.delimiter></hibernate.export.schema.delimiter>
这样问题解决了!
问题3:单元测试不能通过。报一个奇怪的错误:
Tests run: 9, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 2.167 sec <<< FAILURE!
testUpdateUser(com.exam.dao.UserDaoTest) Time elapsed: 0.088 sec <<< ERROR!
java.lang.Exception: Unexpected exception, expected<org.springframework.dao.DataIntegrityViolationException> but was<org.springframework.orm.hibernate4.HibernateSystemException>
这个问题已经被提交到AppFuse的邮件列表中,但是还没有正面的回复,只有一个规避的办法。深层次的原因需要有能力的人继续挖掘!
规避办法是注释掉测试代码UserDaoTest.java的第68行://user2.setRoles(user.getRoles());
user2.setLastName(user.getLastName());
user2.setPassword(user.getPassword());
user2.setPasswordHint(user.getPasswordHint());
//user2.setRoles(user.getRoles());
user2.setUsername(user.getUsername());
user2.setWebsite(user.getWebsite());
修改了这几个问题,oracle profile会成功激活,测试通过并生成jar包、war包。
另外,我修改oracle数据库profile(appfuse-3.5.0.pom)的方式比较不可取,更科学的方式是修改myproject下面的pom.xml.
<properties>
...其他设置
<!-- 为链接oracle数据库添加了以下设置项,这些设置项的默认值指向mysql数据库 -->
<dbunit.dataTypeFactoryName>org.dbunit.ext.oracle.OracleDataTypeFactory</dbunit.dataTypeFactoryName>
<dbunit.schema>MYPROJECT</dbunit.schema>
<hibernate.dialect>org.hibernate.dialect.Oracle10gDialect</hibernate.dialect>
<jdbc.groupId>com.oracle</jdbc.groupId>
<jdbc.artifactId>ojdbc6</jdbc.artifactId>
<jdbc.version>11.2.0</jdbc.version>
<jdbc.driverClassName>oracle.jdbc.OracleDriver</jdbc.driverClassName>
<jdbc.url><![CDATA[jdbc:oracle:thin:@localhost:1521:Orcl]]></jdbc.url>
<jdbc.username>myproject</jdbc.username>
<jdbc.password>myproject</jdbc.password>
<jdbc.validationQuery><![CDATA[SELECT 1 + 1 from DUAL]]></jdbc.validationQuery>
</properties>
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系SPASVO小编(021-61079698-8054),我们将立即处理,马上删除。

sales@spasvo.com