项目里用Hibernate框架,但在数据库设计的时候,用到oracle的long raw类型来存取图片,没有找到hibernate可以支持的办法
所以在网上找到可以用jdbc实现,就这样,在项目里用到对图片操作的时候就要用hibernate和jdbc一起操作数据
如果暂时就要hibernate和jdbc一起用的话,这样会有问题吗?或是应该怎样尽量避免出现的什么问题吗?

解决方案 »

  1.   

    两边要有事务处理怎么解决的呢?还是两边没直接关系?jdbc用的连接是从hibernate那取到的么?还是另起了个连接..
    如果可能同时处理一条记录注意加锁什么的吧.
      

  2.   

    hibernate本来就能支持jdbc,特别是大批量数据更新的时候更要用jdbc,效率高非常多。而且hibernate2.0不支持大批量更新,不过后来的hibernate3.0是支持的,不过还是jdbc效率高。所以根本不用担心hibernate和jdbc一起用会出问题。
      

  3.   

    回1楼
    1.是在HB的插入事物里要用JDBC的插入操作
    2.应该算是间接关系吧
    3.另起的一个,重新链接
    4.这个没考虑过
    回2楼
    HB和JDBC分起起的链接,而且JDBC的操作是在HB的插入事物里,这样不会有问题的吗?
      

  4.   

    hibernate,也可以存取图片,不过要用Blob的字段!
    Hibernate.createBlob(bytes);
      

  5.   

    恩,是的,但我们的数据库设计是long raw形的
    我想了解一下,这样HB和JDBC都分别去链接数据库了会有问题吗
      

  6.   

    不会~放心吧;
    正如2楼所说,hibernate底层封装的就是JDBC,利用回调函数将底层的拿过来,这样百分百不会有冲突;当然直接绕过Hibernate也可以,没事
      

  7.   

    事务、缓存方面可能会有问题。
    你说jdbc是“另起的一个,重新链接”链接就是connection?那么事务上和hibernate的session不能一致。
    不过好像通过session可以直接获得connection,这个链接当然就是hibernate当前用的链接,你可以把你的jdbc操作用这个connection来做,这样应该就能保证事务一致。
    缓存方面,jdbc做的操作当然不会通知到hibernate缓存。不过一级缓存基本没什么用(只是hibernate顺手做的而已),二级缓存不开的话就不用考虑了。
    另外:现在神童真是越来越多了...
      

  8.   

    支持一下,缓存是hibernate的东西,如果直接用jdbc或者用其他orm框架的话,肯定会有一些问题
    另外hibernate的乐观锁也会出现问题,强烈建议不要把hibernate和其他的jdbc一起用,除非很有必要
      

  9.   

    恩,要用的,因为数据库在设计的时候有个字段是long raw形的,但没有找到HB支持他的办法,所以就要用JDBC实现图片的读取
      

  10.   

    那就注意一下,上面回复的内容吧,尽量避免呗
    比如:查询时候尽量用list,乐观锁用数据库的,二级缓存不要用等