DsstrEntity is not 地图ped 和 No identifier specified for entity
springmvc+spring+hibernate4,采用注解方式实现,就在查询所有的时候,就出现这样的异常:
org.hibernate.hql.internal.ast.QuerySyntaxException: DsstrEntity is not mapped
说是没有完整的映射,原以为是把@Table写成了@Entity导致,可改过来还是不行,网上找了很多帖子,都是描述我之前已经做过的工作,不能继续深入了吗?
看了一下某方提供给我们的Demo,发现所有的@Column都是写在get方法上的,而我直接写在在了字段上,我记得之前自己写Demo的时候测试过,写在哪儿都行的啊?
好吧不费话了,换一下位置也耽误不了多长时间,但我还是有一点叛逆,没有写在get方法上,而是全部把注释弄到了set方法上,这个应该不成问题吧?得,又出现了以下异常:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'ptcmsSessionFactory' defined in class path resource [config/ptcms/ptcmsDatasource.xml]: Invocation of init method failed; nested exception is org.hibernate.AnnotationException: No identifier specified for entity: gdcg.emdc.ptcms.entity.DsstrEntity
说找不到主键标识,扯淡嘛,我明明已经添加了@Id的。继续上百度Google一下啊,发现这么一个帖子
原来我还是在为自己的轻狂继续走弯路呢,好吧,我就把@Id放在getter上,行了吧,继续测试:
DsstrEntity is not mapped [select count(model) from DsstrEntity as model where 1=1 ]
这个异常又回来了,好吧我彻底屈服了,把所有的注解都移植到getter上,可是不行,好像是我什么都没做一样,异常依旧。
后来知道了,根本就不是我的问题啊,原来以上的配置都是正确的,无论配置在Filed、setter还是getter上都是可以的,只是包扫描的时候一定要把其扫描进去才行,由于所有的数据源都是整个系统文件来控制的,一直都没把我自己的包加进去,当然不能找到这么个已经配置正确的类了。