我有桌子
table 1- label_look-up (id, en_label, ar_label)
table 2- page_content id, label_look-up_id,image_path)
我使用Java Persistence API并且想要定义实体类,并且需要定义
(label_look-up_id
)作为外键,无需加载label_look-up对象以及何时需要标记。
我将在单独的查询中仅提取en_label
或ar_label
(不是所有字段),因此最佳做法是什么。
SQL
CREATE TABLE `LABEL_LOOKUPS` (
`ID` INT NOT NULL AUTO_INCREMENT,
`AR_LABEL` VARCHAR(3000) ,
`EN_LABEL` VARCHAR(3000) ,
PRIMARY KEY (`ID`)
)
CREATE TABLE `PAGE_CONTENT` (
`ID` INT NOT NULL AUTO_INCREMENT,
`LABEL_LOOKUPS_ID` INT NOT NULL ,
PRIMARY KEY (`ID`),
FOREIGN KEY (`LABEL_LOOKUPS_ID`) REFERENCES LABEL_LOOKUPS (`ID`)
)
答案 0 :(得分:1)
您可以将外键定义为数字数据类型。例如:
private Long labelId;
至于不立即加载所有标签 - 我会重新考虑。 JPA获取一两个你不会使用的额外列(假设你没有加载数千列)并不是什么大问题。
您对数据库进行查询的次数更多。