有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何使用Hibernate注释

我在DB中有以下表格: Tables

并希望hibernate@Entity进行如下POJO那样的交换:

class ExchangeRates{
    List<Currency> currencies;
}

class Currency{
    Long Id;
    String name;
    List<Rate> exchangeRates;
}

class Rate{
    Currency currency;
    BibDecimal rate;
}

你能给我一些关于如何使用hibernate注释的建议吗


共 (1) 个答案

  1. # 1 楼答案

    如果有两个Entities具有ManyToMany关系,那么将有一个引用这两个关系的JoinTable

    例如,该表将如下所示:

    Name: EX_CUR
    Column 1:CUR_ID
    Column 2:EX_ID
    

    而像这样的实体:

    @Entity
    @Table(name="currencies_fixed_exchange_rates")
    class ExchangeRates{
    
        @Id
        Long id;
    
        @ManyToMany
        @JoinTable(
          name="EX_CUR",
          joinColumns=@JoinColumn(name="CUR_ID", 
          referencedColumnName="ID"),
          inverseJoinColumns=@JoinColumn(name="EX_ID", 
          referencedColumnName="ID"))
        List<Currency> currencies;
    }
    
    @Entity
    @Table(name="currencies")
    class Currency{
    
        @Id
        Long Id;
    
        @Column
        String name;
    
        @ManyToMany(mappedBy="currencies")
        List<Rate> exchangeRates;
    }
    
    @Entity
    @Table
    class Rate{
    
        @Id
        Long id;
    
        @OneToOne
        Currency currency;
    
        @Column
        BigDecimal rate;
    }