浏览 1974 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-05-07
好处是能自定义符合自己的类型,特别是在重构或者开发基于以前数据库设计的。 坏处是,用了usertype之后就依赖于hibernate,不方便移植到jpa。 现在我有这么一个需求,在UserBean有个photo,用于保存用户图片,以前都是在action处理,然后把图片的相对地址保存到user表。但现在发现都依赖于action,每处理有图片或者附件的bean时都要在action进行相应操作,所以想用hibernate usertype来处理图片或者附件上传问题。 我的FileUserType实现了UserType, ParameterizedType两个操作。在nullSafeSet方法先保存到文件系统,然后再文件相对地址插入库,在nullSafeGet根据库的相对地址实例File,然后set到UserBean。就是完成了插入和读。但现在发布更新和删除没办法在这里处理,我的更新思路是先删除文件系统的文件,然后再上传,表字段的值直接更新就行了。删除也是先删除文件系统的文件。但我发现在实现了UserType接口没有提供得知状态(插入、更新、删除)的方法,或者我现在用的还不对,现在我就想知道有没有办法在得知这些状态。暂不考虑用eventListeners。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-05-07
UserType无法得知状态
|
|
返回顶楼 | |
发表时间:2008-05-07
我也了解,确实像楼上说的。
现在我想换用jpa,因为他有个@PreRemove @PrePersist @PreUpdate @PostLoad 这几个能给我所需要的状态。但jpa又发现没有usertype,所以结合了hibernate能完成我的需求,其实我感觉这和用hibernate 监听器是一样的。只是hibernate在实体实现插入和读取,而在监听器实现更新和删除,这样破坏了实体的一致性,而用jpa+hibernate能完成了,但又依赖于hibernate,不方便移植。 我现在只是想做个类似rails file_column,大家有什么好的思路吗? |
|
返回顶楼 | |