使用 Hibernate 映射数组

新手上路,请多包涵

你能帮我用 Hibernate 映射这个类吗?

 public class MyClass{
    private Long id;
    private String name;
    private int[] values;
    ...
}

我正在使用 PostgreSQL,表中的列类型是 integer[] 我的数组应该如何映射?

原文由 danny.lesnik 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 498
2 个回答

我从来没有将数组映射到休眠。我总是使用集合。所以,我稍微改变了你的课程:

 public class MyClass{
    private Long id;
    private String name;
    private List<Integer> values;

    @Id
    // this is only if your id is really auto generated
    @GeneratedValue(strategy=GenerationType.AUTO)
    public Long getId() {
        return id;
    }

    @OneToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY)
    public List<Integer> getValues() {
        return values;
    }
    ...

原文由 AlexR 发布,翻译遵循 CC BY-SA 3.0 许可协议

Hibernate(和 JPA)不能直接映射 PostgreSQL 数组类型。如果您确实需要按原样保留数据库结构, 请参阅此问题 以了解如何继续。 该线程 有一个所需自定义类型的示例。

如果你可以改变你的模式,你可以让休眠创建一个额外的表来处理集合 - List<Integer> 。然后,根据您使用的休眠版本:

原文由 Bozho 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题