java - Hibernate - 如何持久化 Map<UUID,POJO>

标签 java hibernate jpa

我找不到我的注释有什么问题(我使用了官方的 hibernate 文档)

public class DashletContainer{

private Map<UUID, DashletData> dashletData = new HashMap<>();
//STUFF

    @OneToMany(cascade = CascadeType.ALL)
    @JoinTable(name = "rd_container_data")
    @MapKeyColumn(name = "dashletdata_dashlet_id")
    public Map<UUID, DashletData> getDashletData() {
        return dashletData;
    }
}


public class DashletData{

//STUFF

    @Column(name = "dashlet_id")
    public UUID getDashletId() {
        return dashletId;
    }

    @ManyToOne(cascade = CascadeType.ALL)
    public DashletContainer getDashletContainer() {
        return dashletContainer;
    }
}

这是我在数据库上的连接表(rd_container_data)的结构:

dashletdata_id      | UUID
dashletcontainer_id | UUID
dashletdata_dashlet_id  | UUID

问题是当我持久化容器对象时,它里面的 Map 保持为 Null,并且没有任何内容被插入到相应的表中。

谢谢

最佳答案

@dave 尝试在属性 dashletData 上添加 @MapKeyColumn(name = "dashletdata_dashlet_id") 而不是 getter

关于java - Hibernate - 如何持久化 Map<UUID,POJO>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25600244/

相关文章:

java - && 运算符真的比 || 具有更高的优先级吗?运算符(operator) ?看代码

java - 为什么我的并发程序比顺序版本慢?

java - 优化启动画面内存

java - 在 Spring : Caused by: org. hibernate.AnnotationException 中使用 Hibernate 的困难:针对未映射的类使用 @OneToMany 或 @ManyToMany:

java - 内部 HSQL 数据库提示特权

mysql - 分页 Hibernate JPA : orderBy + setFirstResult + setMaxResult

java - 如何使用 Java 显示计算机的桌面?

Hibernate 查询列表中的项目

java - 尝试从 Mysql 数据库获取数据(Spring Boot + Vaadin)

java - Spring Boot 查询中的动态过滤器