簡體   English   中英

使用Hibernate的商店數組的最佳方法是什么?

[英]What is the best way of store arrays with Hibernate?

我想將一個double[]數組作為Blob在具有Hibernate的數據庫中。 但當我將該屬性標記為Lob ,這樣的事情:

@Entity
class MyEntity {
    @Lob
    double[] data;
}  

我得到錯誤D cannot be cast to java.sql.Blob (其中對於double[][]數組這是有效的...)所以,我的問題是如何使用Hibernate進行persis dobule[]數組?

UPD我忘記了主要的事情,對不起......數組足夠大,數千個值(更具體的5000-20000值)。 我想使用H2數據庫中的Blob壓縮選項。 所以,我需要Lob ,但不需要List

UPD2另一個細節,它是只讀數組。

在我看來,使用@ElementCollection並讓Hibernate處理優化是最好的:

@Entity
class MyEntity {
    @ElementCollection
    List<Double> data;
}  

https://docs.jboss.org/hibernate/stable/annotations/reference/en/html_single/#entity-hibspec-collection

@Lob注釋不支持double []類型。 @Lob支持的類型有:

  • java.sql.Clob,Character [],char []和java.lang.String - >作為Clob保存在數據庫中
  • java.sql.Blob,Byte [],byte []和可序列化類型 - >作為Blob在數據庫中持久化

你可以做的是創建一個自定義的可序列化類,然后使用它

@Entity
class MyEntity {
    @Lob
    DoubleArray data;
}  



public class DoubleArray implements Serializable {

    private double[] data;

    //constructor, getter and setter

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM