让我们想象一下下面的情况。我有这样一个实体:
@Entity
public class Price {
@Id
private int id;
@Column
private int amount;
private String currency;
}
我有两张table:
CREATE TABLE currency (
id integer not null primary key,
name varchar
);
CREATE TABLE price (
id integer not null primary key,
amount integer,
currency_id integer references currency(id)
);
我想告诉spring,当我访问price.getcurrency()时,我想在“currency”表的“name”列中存储任何内容。换句话说,我想在一个实体中连接两个表。
我可以使货币成为一个单独的类,用@oneto注解属性。。。像price.getcurrency().getname()一样获取。但我不想要一个单独的类,我只需要这个特定的列。
我尝试通过@secondarytable注解添加它,如下所示:
@SecondaryTable(name = "currency",
pkJoinColumns = @PrimaryKeyJoinColumn(name = "id", referencedColumnName = "currency_id"))
但在本例中,spring通过如下ID连接两个表:
SELECT * FROM price LEFT JOIN price ON price.id = currency.id
当然,这是行不通的。那我该怎么做呢?@secondarytable是一种正确的方法吗?如果是,我如何通过非主键列连接它?
1条答案
按热度按时间yyhrrdl81#
是的,你可以用
@SecondaryTable
: