petclinic(compass+jdbc+mysql版)配置笔记

首先希望版主删除我前2天发的帖子:compass+jdbc+mysql跑自带例子petclinic报错。帖子提问的有误,实属垃圾,呵呵。

由于compass自带的petclinic例子中jdbc数据访问层的数据库使用的是hsql db(至发帖时也没有jdbc+mysql的例子),本人照猫画虎终于跑起来compass+jdbc+mysql版的petclinic,配置见下面。由于把例子刚跑起来,也没有看compass的源码(内力有限,呵呵),很可能还有别的错误,大家就不要吝啬手中的鸡蛋石头了:)

环境:
tomcat:5.0.28 zip
mysql:5.1.22-rc-community(发帖时最新)
mysql驱动:connectorj 5.1.5(发帖时最新)


配置:
1  petclinic(jdbc+hsql版)的配置请参考文档。


2  修改jdbc.properties中的jdbc.url,我的是:jdbc:mysql://localhost:3306/petclinic?generateSimpleParameterMetadata=true。
要增加generateSimpleParameterMetadata=true参数,compass自动更新索引时(ResultSetJdbcGpsDevice [line: 337] - performMirroring())只有generateSimpleParameterMetadata=true时才行,否则会抛“java.sql.SQLException: Parameter metadata not available for the given statement”,因为mysql驱动默认generateSimpleParameterMetadata=false(参考ConnectionPropertiesImpl类953行).这里有2个方法解决,修改compass源码,或增加这个参数(笨人首选后者 )

3  修改applicationContext-jdbc.xml中selectQuery,versionQuery中的sql(4处)。
举一个说明:我把原来针对hsql的“COALESCE(t.version, convert('1970-01-01', timestamp)) as type_version”改成
“cast(coalesce(t.version,cast('2000-1-21' as datetime)) as datetime) as type_version”。
这里的sql有点长,应该有好的写法。

至此,OK啦!先试试,插入数据后搜索速度嗖嗖的

还有一点小问题:搜索结果页面中点owner链接有问题,我还没来的及看,不过这个不影响

最后希望各位看看我的有什么问题,说说自己用compass的体会,谢谢!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值