2011-08-30 55 views
2

在播放中!教程,模型Post的content字段被註釋爲@Lob.I試過這個,當postgres被用作db時,發現表Post有一個名爲content的列,其值爲133414而不是長字符串,這是發佈內容。列類型顯示爲'text',其中實體中的其他字符串字段爲character varying使用@Lob作爲播放框架中的字段

假設我想搜索包含其內容中某個單詞的帖子,我將如何制定查詢?我必須刪除@Lob註釋並讓postgres將內容作爲varchar存儲在內容列中嗎?

回答

1

@Lob根據定義是一個大對象。這可以存儲爲二進制數據或字符數據。在lobs/clob/blob中搜索可能會非常困難,並且在大多數情況下不會進行優化。我會建議使用更多的傳統類型,如文本,varchar。這些是可索引的,因此性能更高。 (在大多數情況下),您可能還必須定義列大小。

您可以將它們使用列註釋精確:

@Column(type = "TEXT") 
+2

我認爲使用正確的屬性:@Column(columnDefinition = 「TEXT」) –

+0

@joel S:+ 1,這是一個與我一起工作,謝謝。 – mosid