相关疑难解决方法(0)

Hibernate 4:持久化InheritanceType.JOINED鉴别器列值

我有一个简单的JOINED文档层次结构:

CREATE TABLE Documents
(
  id INTEGER NOT NULL,
  discriminator ENUM('official','individual','external') NOT NULL,
  file_name VARCHAR(200) NOT NULL,
  PRIMARY KEY (id)
);

CREATE SystemDocuments
(
  id INTEGER NOT NULL,
  binary_data BLOB NOT NULL,
  PRIMARY KEY (id),
  FOREIGN KEY (id) REFERENCES Documents (id)
);

CREATE ExternalDocuments
(
  id INTEGER NOT NULL,
  PRIMARY KEY (id),
  FOREIGN KEY (id) REFERENCES SystemDocuments (id)
);
Run Code Online (Sandbox Code Playgroud)

如您所见,所有子表都与Documents表共享相同的ID.除此之外,SystemDocuments添加一binary_data列并且不ExternalDocuments添加任何新属性.(还要注意有层次结构中表示为其他两个具体子表'official''individual'它在这里是没有意义的.)

以下是上表的映射:

Document.java:

@Entity
@Table(name = "Documents")
@Inheritance(strategy = InheritanceType.JOINED) …
Run Code Online (Sandbox Code Playgroud)

java inheritance hibernate jpa discriminator

10
推荐指数
1
解决办法
2万
查看次数

标签 统计

discriminator ×1

hibernate ×1

inheritance ×1

java ×1

jpa ×1