2008-05-07
hibernate usertype 如何得知自身实体状态
关键字: hibernate usertype
hibernate usertype优劣网上有不少说法,下面是我的感受。
好处是能自定义符合自己的类型,特别是在重构或者开发基于以前数据库设计的。
坏处是,用了usertype之后就依赖于hibernate,不方便移植到jpa。
现在我有这么一个需求,在UserBean有个photo,用于保存用户图片,以前都是在action处理,然后把图片的相对地址保存到user表。但现在发现都依赖于action,每处理有图片或者附件的bean时都要在action进行相应操作,所以想用hibernate usertype来处理图片或者附件上传问题。
我的FileUserType实现了UserType, ParameterizedType两个操作。在nullSafeSet方法先保存到文件系统,然后再文件相对地址插入库,在nullSafeGet根据库的相对地址实例File,然后set到UserBean。就是完成了插入和读。但现在发布更新和删除没办法在这里处理,我的更新思路是先删除文件系统的文件,然后再上传,表字段的值直接更新就行了。删除也是先删除文件系统的文件。但我发现在实现了UserType接口没有提供得知状态(插入、更新、删除)的方法,或者我现在用的还不对,现在我就想知道有没有办法在得知这些状态。暂不考虑用eventListeners。
好处是能自定义符合自己的类型,特别是在重构或者开发基于以前数据库设计的。
坏处是,用了usertype之后就依赖于hibernate,不方便移植到jpa。
现在我有这么一个需求,在UserBean有个photo,用于保存用户图片,以前都是在action处理,然后把图片的相对地址保存到user表。但现在发现都依赖于action,每处理有图片或者附件的bean时都要在action进行相应操作,所以想用hibernate usertype来处理图片或者附件上传问题。
我的FileUserType实现了UserType, ParameterizedType两个操作。在nullSafeSet方法先保存到文件系统,然后再文件相对地址插入库,在nullSafeGet根据库的相对地址实例File,然后set到UserBean。就是完成了插入和读。但现在发布更新和删除没办法在这里处理,我的更新思路是先删除文件系统的文件,然后再上传,表字段的值直接更新就行了。删除也是先删除文件系统的文件。但我发现在实现了UserType接口没有提供得知状态(插入、更新、删除)的方法,或者我现在用的还不对,现在我就想知道有没有办法在得知这些状态。暂不考虑用eventListeners。
- 09:37
- 浏览 (161)
- 论坛浏览 (290)
- 评论 (2)
- 分类: java
- 相关推荐
评论
我也了解,确实像楼上说的。
现在我想换用jpa,因为他有个@PreRemove @PrePersist @PreUpdate @PostLoad
这几个能给我所需要的状态。但jpa又发现没有usertype,所以结合了hibernate能完成我的需求,其实我感觉这和用hibernate 监听器是一样的。只是hibernate在实体实现插入和读取,而在监听器实现更新和删除,这样破坏了实体的一致性,而用jpa+hibernate能完成了,但又依赖于hibernate,不方便移植。
我现在只是想做个类似rails file_column,大家有什么好的思路吗?
现在我想换用jpa,因为他有个@PreRemove @PrePersist @PreUpdate @PostLoad
这几个能给我所需要的状态。但jpa又发现没有usertype,所以结合了hibernate能完成我的需求,其实我感觉这和用hibernate 监听器是一样的。只是hibernate在实体实现插入和读取,而在监听器实现更新和删除,这样破坏了实体的一致性,而用jpa+hibernate能完成了,但又依赖于hibernate,不方便移植。
我现在只是想做个类似rails file_column,大家有什么好的思路吗?
Quake Wang
2008-05-07
回复
UserType无法得知状态
- 浏览: 40840 次

- 详细资料
搜索本博客
我的相册
{EADD2367-2334-4234-2434-231181485467}0
共 1 张
共 1 张
链接
- The Tapestry sample applications
- ruby
- Lucene
- Maven 2 简明学习指南(2)
- jsf
- 石头记
- srpingide
- 使用attachment_fu上传
- rails 文件上传
- ruby on rails 实现多文件的上传
- Ruby 多文件上传并写入数据库
- Hibernate Search牛刀小试
- springside分页
- 用Acegi Security来保护Grails应用
- 精通 Grails: 构建您的第一个 Grails 应用程序
- Chinese User Guide
- Rails宝典之第五十二式: 使用Checkbox来更新
- ruby 分页
- ruby 不错的分页
- js效果
- 很多值得看的多线程例子
- web监控
最新评论
-
compass中如何配置分词器 ...
spring配置compass分词器!经过本人多次尝试,以上楼的方法不正确,正确 ...
-- by cslgdxzhangpeng -
在Debian上部署Rails Apac ...
适合我这种新手看.
-- by yangzhihuan -
hibernate usertype 如何 ...
我也了解,确实像楼上说的。现在我想换用jpa,因为他有个@PreRemove @ ...
-- by biaoming -
hibernate usertype 如何 ...
UserType无法得知状态
-- by Quake Wang -
发现一个在线学习groovy的 ...
按照教程,练习了一把,感觉不错。
-- by yf1975






评论排行榜