Java 如何使用Hibernate注释

Java 如何使用Hibernate注释,java,hibernate,Java,Hibernate,我在DB中有以下表格: 并希望hibernate@Entity进行如下POJO那样的交换: class ExchangeRates{ List<Currency> currencies; } class Currency{ Long Id; String name; List<Rate> exchangeRates; } class Rate{ Currency currency; BibDecimal rate; }

我在DB中有以下表格:

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

class ExchangeRates{
    List<Currency> currencies;
}

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

class Rate{
    Currency currency;
    BibDecimal rate;
}
类交换率{
列出货币;
}
类别货币{
长Id;
字符串名;
列表交换;
}
等级率{
货币;
双溴化率;
}

您能告诉我如何使用hibernate注释执行此操作吗?

如果您有两个
实体
具有
多个
关系,那么您将有一个引用这两个实体的联接表

例如,该表将如下所示:

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;
}
而像这样的实体:

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;
}
@实体
@表(name=“货币固定汇率”)
阶级交换率{
@身份证
长id;
@许多
@可接合(
name=“EX_CUR”,
joinColumns=@JoinColumn(name=“CUR\u ID”,
referencedColumnName=“ID”),
inverseJoinColumns=@JoinColumn(name=“EX_ID”,
referencedColumnName=“ID”))
列出货币;
}
@实体
@表(名称=“货币”)
类别货币{
@身份证
长Id;
@纵队
字符串名;
@许多(mappedBy=“货币”)
列表交换;
}
@实体
@桌子
等级率{
@身份证
长id;
@奥内托内
货币;
@纵队
大十进制率;
}

对不起,我不明白。我已经有了这两个表,难道不可能做到这一点吗?问题是多个表之间的关系。连接同一实体的不同实例的关系必须了解每个实例。一个实体不能知道它不应该知道的其他实体。比如,如果你有3辆车,你可以驾驶,另外一个人也可以驾驶其中的两辆,另外还有一辆车,你不可以驾驶。如果您只需要表格,您计划如何将它们分开?