Posts tagged: hibernate

查找被关联对象

在Grails实现复杂的数据录入示例中,如果删除一个图书对象,而这个对象是另一个或多个对象的相关图书。这时就会报错。 当然,我们可以根据这个异常来提示客户,不能删除,虽然这不是个好方法。但是客户需要知道它到底被哪几个对象关联了。 可以使用hql的join子句实现这样的功能。 这里再把Book实体代码列出来: class Book {     static mapping = {         //id generator:’uuid.hex’, params:[separator:'-']         //relativeBooks cascade:"delete"     }         static hasMany=[relativeBooks:Book]         //String id     String name     List<Book> relativeBooks=[] }      发送文章为PDF   

星期二 七月 12th, 2011 in , , , , | No Comments »

Grails实现实体自身多对多的变通方案

Grails中的GORM,是自动的对象关系映射api。封装了Hibernate,功能应该是Hibernate的子集,不过借助强大的groovy语言使用起来更方便。 项目中需要实现实体自身多对多的关系。图书和相关图书。 一本书,有0到多个相关图书。一本书,还可能被0到多个图书相关。这里要注意啦,这两个集合不是重合的。即,a图书的相关图书有b,但b不一定相关图书有a。这也好比,你的朋友中,有人未必拿你当朋友,呵呵。 日志引用Grails实现备选相关图书Grails的GORM中使用uuid    发送文章为PDF   

星期五 七月 8th, 2011 in , , , , | No Comments »

gilead是什么?

gilead是什么 gilead是个java api,用于将hibernate对象的clone和merge。网址是: http://noon.gilead.free.fr/gilead/ 官方网站的说明是: Gilead让你无痛苦的传递持久对象到JVM外,比如GWT, Web-Services, Flex和Google AppEngine等。 这个图比较说明问题,你可以把java server这端的对象树看作hibernate生成的持久对象。灰色的节点表示延时加载的对象。经过桔黄色的gilead工具,可以克隆(clone)成延时加载对象赋值为null的对象图,这样再传递到比如gwt rpc,就不会出现LazyInitialisationException了。    发送文章为PDF   

星期三 四月 21st, 2010 in , , , , | No Comments »

gwt通过RPC方式使用hibernate

以前,使用gwt开发企业应用系统。多人一起工作。采用的是json作为服务器端和gwt浏览器端通信。 主要考虑的是,hibernate管理的实体对象,在脱离JVM可能会有一些问题,比如lazy loading等。 现在开发的是服务器端的小应用程序,需要简化开发技术,提供生产效率。计划取消掉spring,服务器端直接使用hibernate。 用最新的hibernate 3.5.1-final版本写了个简单的代码。 日志引用gilead是什么?    发送文章为PDF   

星期三 四月 21st, 2010 in , , | No Comments »

还是升级到hibernate3.3.1GA的问题

上次升级hibernate3.3.1ga发现问题,并且解决了。见升级hibernate版本到3.3.1.GA。昨天在做测试的时候又发现问题。开发和测试阶段,直接设置了hibernate的show_sql属性为true,在控制台打印sql信息。部署到服务器上,需要改为写入日志文件。以前使用log4j的配置是: log4j.logger.org.hibernate.SQL=INFO    发送文章为PDF   

星期二 五月 19th, 2009 in , , , | No Comments »

maven项目支持hibernate多数据库配置参数的方案

maven项目支持多数据库驱动的方案可以实现驱动的切换,但是比如url等jdbc参数,还需要自己手写。maven可以进一步自动化这个过程。同时不影响团队共用的项目文档。因为数据库url等参数只和开发者本地环境相关,团队中的多个开发者不能共享这些配置。所以这些配置内容应该放置在maven的用户settings.xml文件中。    发送文章为PDF   

星期日 三月 1st, 2009 in , , , | No Comments »

升级hibernate3.3.1.ga遇到的另一个问题

和spring集成使用hibernate3.3.1.ga的时候,启动时出现异常: … with name ‘sessionFactory’ defined in class path resource [util/dao/dao.config.xml]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: javassist/util/proxy/MethodFilter:java.lang.ClassNotFoundException: javassist.util.proxy.MethodFilter 解决办法是,增加javassist的库支持,在maven的pom文件中增加:   <dependency> <groupId>javassist</groupId> <artifactId>javassist</artifactId> <version>3.8.0.GA</version> </dependency>    发送文章为PDF   

星期一 十二月 15th, 2008 in , | No Comments »

升级hibernate版本到3.3.1.GA

项目中使用的hibernate版本是3.2.6.ga,现在需要升级到3.3.1.ga,在集成spring的项目中出现了异常,找不到slf4j的类: Exception in thread “main” java.lang.NoClassDefFoundError: org/slf4j/impl/StaticLoggerBinder 配置最新的slf4j库也不行,hibernate中使用的是1.5.2版本。版本问题解决了,又出现找不到cglib的错误,于是在maven中显式的声明cglib库的依赖。之前是不需要这样显式声明的。 日志引用还是升级到hibernate3.3.1GA的问题    发送文章为PDF   

星期一 十二月 15th, 2008 in , , , , | No Comments »

在spring-dm环境下增加hibernate绑定

在spring-dm(1.1.2)环境下增加hibernate(3.2.6 ga)绑定的步骤:    发送文章为PDF   

星期四 十一月 20th, 2008 in , , , , , , , | No Comments »