java - OneToMany 与 @EmbeddedId 和 kundera

标签 java hibernate cassandra kundera

我有两个类,我想使用 OneToMany 与 EmbeddedId 的关系 (我正在使用 kundera 框架) 我的传感器实体类:

public class SensorEntitie implements Serializable {
    @EmbeddedId
    private CompoundKey key;
    @Column
    private float temperature;
    @Column
    private float pressure;

    @OneToMany(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER)
    @JoinColumn(name="what I should to put here")
    private List<PieceEntitie> pieces;
}
@Embeddable
    public class CompoundKey
    {
        @Column 
        private String IdSensor;           
        @Column 
        private long date;           
        @Column(name = "event_time")
        private long eventTime;

我的作品类实体

public class PieceEntitie implements Serializable{

    /**
     * 
     */
    @Id
    private String IdPiece;
    @Column
    private double width;
    @Column
    private double height;
    @Column
    private double depth;

但是我怎样才能填补@JoinColumn 中的空白

最佳答案

我找到了解决方案: 要使用与 EmbeddedId 的 OneToMany 关系,我应该声明 JoinColumns 和多个 JoinColumn

@OneToMany(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER)
    @JoinColumns({
        @JoinColumn(name = "idsensor", referencedColumnName = "idsensor"),
        @JoinColumn(name = "date", referencedColumnName = "date"),
        @JoinColumn(name = "event_time", referencedColumnName = "event_time")
})

关于java - OneToMany 与 @EmbeddedId 和 kundera,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37162156/

相关文章:

ubuntu - 安装 Datastax 社区版失败

cassandra - 无法确定 DSE_ENV

java - 阻塞或非阻塞 - 在 Java 的 HashMap 中重新散列期间添加元素

java - 在未安装 SQL Server 的情况下运行 sqlcmd

java - JPA/Hibernate entityManager.persist(..) 使实体的集合变为 null,即使它们已保存

mysql - 关于spring/jpa/hibernate中乐观锁的简单设计问题

mysql - JPA Hibernate 双向关系以空指针结束

java - 如何运行 RabbitMQ Java 接收器?

java - 如何在没有JDK的情况下运行jcmd?

java - 在 cassandra 中设置 TTL 后无法运行选择查询