JPA实体外键

时间:2014-03-12 11:45:44

标签: java jpa

我有桌子

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_labelar_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`)
)

1 个答案:

答案 0 :(得分:1)

您可以将外键定义为数字数据类型。例如:

private Long labelId;

至于不立即加载所有标签 - 我会重新考虑。 JPA获取一两个你不会使用的额外列(假设你没有加载数千列)并不是什么大问题。

您对数据库进行查询的次数更多。