我使用Spring 4.2.3,Hibernate 5.0.4,JPA 2.1用於ORM情況下的自我培訓。今天我正在學習如何在Oracle 11.2.0.4 DB中存儲Blob。Blob使用Hibernate和Spring創建
在我的應用程序中,我有Service和Dao層。
問題: 我爲什麼要創建一個使用Hibernate.getLobCreator這就要求當前會話Blob實例?爲什麼不能再使用[Hibernate.createBlob] [3](不訪問當前會話)?
在某些情況下,我可能需要使用Blob字段進行初始化的瞬態域模型,而無需使用Dao將其保存在數據庫中。
是不是因爲(如寫入Blob的JavaDoc):
甲Blob對象是有效的,其中被創建的事務的持續時間。
對不起,問一個愚蠢的問題,但我無法找到滿意的答案。
或更重要的是,爲什麼需要使用特定供應商的方法,只是堅持的Blob,當其他JPA提供商並不需要它? –
爲什麼你想手動創建一個blob?爲此,有['@ Lob'](http://docs.oracle.com/javaee/6/api/javax/persistence/Lob.html)註釋...只需將它添加到'byte []'或'String'參數並完成它。不要隨便亂動(B/C)Lobs(很久以前就是這麼做的)。 –
@ M.Deinum謝謝你的回答。你的意思是應該在映射中使用byte []還是String,而不是(B/C)Lobs?但是在[Hibernate 5.0 Lobs文檔](http://docs.jboss.org/hibernate/orm/5.0/mappingGuide/en-US/html_single/#basic-lob)中也使用了java.sql.Clob字段。 –