oracle里的定义是这样的
create view ..
select A.tid as id , B.*,C.* from A,B,C ...
**.hbm.xml里定义本身是hibernate 自动生成的, 启动tomcat报错了。
谷哥答案是因为上面的视图"被索引",而视图是不允许索引存在的,A表的id作为主键,是有索引的,可是后来我换select sys_guid() as id , a.tid ....
--could not complete schma update
--could not get table meadata :v_**_views
更新视图出错,我在sessionFactory 的配置属性里加了一项,hibernate.hbm2ddl.auto=update ,hibernate启动会去检查配置与数据库定义是否一致,当不一直则会执行update操作,这时问题就发生了(tips:貌似我以前怎么没有?)
解决方法:暂时把这个属性注释掉就可以正常启动了,问题是不知道后面会不会有问题?
我不确定这样做会不会造成mapping和数据库定义不一致。
注意:hibernate.hbm2ddl.auto这条属性最好不要设置成create ,他会先drop掉表,然后再create一遍定义,也就是说,您的数据会全部丢失。。妹的,幸好我只填了部分测试数据。
(tips1:去掉这条属性,tomcat加载也迅速了很多
tips2:开发时最好不要设置那么复杂的主外键关系,不然会很头痛的)
Comments | NOTHING