Hibernate 圣杯;JPA注释+;休眠映射文件。如何消除这个错误?
我试图在我的项目中重用一些带有JPA注释的实体类。但不幸的是,我也是Hibernate&JPA的新手。当我尝试使用命令生成控制器时 “grails生成所有”我得到错误: 运行generate all时出错:错误 创建名为的bean “messageSource”:的初始化 bean失败;嵌套异常是 org.springframework.beans.factory.BeanCreationException: 创建名为的bean时出错 “transactionManager”:无法解析 对bean“sessionFactory”的引用 在设置bean属性时 “会话工厂”;嵌套异常是 org.springframework.beans.factory.BeanCreationException: 创建名为的bean时出错 “sessionFactory”:调用init 方法失败;嵌套异常是 org.hibernate.PropertyNotFoundException: 找不到属性的setter 类中的版本example.MyBean 有一个非常简单的解决方案:使用getter/setter对添加字段“version”。但我不想更改我的实体类,因为可能我想在其他一些非grails项目中重用它们。有没有一种方法可以将JPA注释与hibernate映射文件一起使用,而不复制实体类中已经使用的注释Hibernate 圣杯;JPA注释+;休眠映射文件。如何消除这个错误?,hibernate,jpa,grails,hibernate-mapping,grails-domain-class,Hibernate,Jpa,Grails,Hibernate Mapping,Grails Domain Class,我试图在我的项目中重用一些带有JPA注释的实体类。但不幸的是,我也是Hibernate&JPA的新手。当我尝试使用命令生成控制器时 “grails生成所有”我得到错误: 运行generate all时出错:错误 创建名为的bean “messageSource”:的初始化 bean失败;嵌套异常是 org.springframework.beans.factory.BeanCreationException: 创建名为的bean时出错 “transactionManager”:无法解析 对bea
是的,还有,这是个好主意还是有更好的方法?在xml映射文件中有:
<hibernate-mapping default-access="field">
默认访问(可选-默认为属性):Hibernate用于访问所有属性的策略
如果设置为字段
,hibernate将直接读取字段,而不需要getter
当然,您需要至少有一个字段。不能只映射不存在的任意属性。(好吧,也许你可以使用一些“魔法”,但我建议不要使用)你需要乐观锁定吗?我相信把它关掉会治好的 您应该通过hibernate配置,使用class/optimistic lock属性全局或按类执行,或者您可以向类添加hibernate注释,但这显然意味着更改类,并假设您正在使用hibernate
您还可以使用aop编译器将版本字段/getter/setter或注释编织到构建域模型中op仍然需要将版本字段添加到其class@vickirk对我的假设是这样的,但事实可能并非如此。。这会很奇怪。不,我不是。如何禁用它?更新答案以反映评论