【问题标题】:persistent 2D boolean array in JPA (openJPA)JPA 中的持久 2D 布尔数组(openJPA)
【发布时间】:2012-02-02 03:27:59
【问题描述】:

我正在编写一个具有树状数据结构的实体。我使用可嵌入对象作为节点。这些可嵌入节点必须携带一个二维布尔数组。

我可以这样做吗:

@Embeddable
public class AwesomeNode implements Serializable{

    private boolean[][] matrix;

    // getters, setters and other stuff

}

我一直在阅读文档,虽然支持所有原始类型,但布尔数组似乎不支持。

如果确实如此,我计划使用 byte[width*height](明确支持),然后在用户端执行必要的逻辑。这是一个好主意吗?有更好的方法吗?

谁能提供一些指导。

【问题讨论】:

    标签: java jpa orm persistence openjpa


    【解决方案1】:

    JPA 的构建方式可以轻松地将字段值存储在关系数据库中。您希望如何将 2D 数组存储在表中? 你应该自己回答这个问题,你会立即看到它应该如何映射。

    示例:如果您说它将是二进制表示,那么您应该使用 BLOB 映射

    或者,如果您知道矩阵中有多少列,您可以为它专门创建一个表格,表格中的每一行都将是二维数组中的一行。选择权在您手中,但是是的,您不能只获取 2D 数组并存储它,它只是不能开箱即用地存储在关系数据库中。

    希望对你有帮助

    【讨论】:

    • objectdb.com/java/jpa/entity/types#Multi_Value_Types_ 你确定吗?这让我觉得二维数组实际上可以持久化
    • 当然它可以被持久化,正如 Mark Bramnik 所说的......作为 BLOB(使用 @Blob)。
    • 所以我只需要用@Lob 对其进行注释吗?还是我实际上必须自己序列化它。如果我将二维数组包装在可序列化的类中会怎样?
    猜你喜欢
    • 1970-01-01
    • 2019-03-20
    • 2012-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多