我在Hibernate中使用JPA,需要在數據庫中存儲小型XML數據(最多500個字符)。JPA中XML數據的列類型
我不需要查詢XML數據,也就是說,XML數據永遠不會是WHERE
子句的一部分。
我應該使用哪種數據類型?
我在Hibernate中使用JPA,需要在數據庫中存儲小型XML數據(最多500個字符)。JPA中XML數據的列類型
我不需要查詢XML數據,也就是說,XML數據永遠不會是WHERE
子句的一部分。
我應該使用哪種數據類型?
我不認爲這裏有使用LOB的理由,因爲500是你的最大長度。一種選擇是簡單地將字符串映射到列並從外部解析XML類型。
另一種選擇是使用Hibernate的特殊註解來映射外部類型 - http://docs.jboss.org/hibernate/annotations/3.5/reference/en/html_single/#d0e2794
謝謝你的賞金。祝你好運! –
用@Lob
或使用type="clob"
註釋您的財產。
@Lob指示屬性應該以斑點被持久或 的Clob取決於屬性類型:java.sql.Clob中,字符[], 炭[]和java.lang.String中會堅持在Clob。 java.sql.Blob,Byte [],byte []和可序列化類型將在Blob中持久保存 。
您也可以考慮使用延遲加載這樣的數據@Basic(fetch = FetchType.LAZY)
的。
XML是一種基於文本的格式,它是不是一個不好的做法,將其存儲在數據庫中,微軟的SQL Server甚至有一個XML數據類型。所以,如果您使用的是Microsoft SQL Server,則可以使用它。請找到從MSDN下面的鏈接瞭解更多信息:
http://msdn.microsoft.com/en-us/library/hh403385.aspx
對於其他數據庫中,同樣是將其存儲在VARCHAR或nvarchar文本格式,因爲在未來,如果你想查詢數據庫是個好主意並處理XML,這將非常方便。
你有目標數據庫運行時嗎?還是它是通用的,任何數據庫? 500字符是一個明確的長期存儲限制? –
@John Ament我正在尋找一個數據庫不可知的解決方案,500是絕對最大的。 –