- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的数据库中有两个表,如下所示,外键来自 job_label.job_id
到 job_record
中的等效列。此外,job_id
的三元组, label_key
,和label
在job_record
有一个独特的约束。
mysql> select * from job_record;
+--------+---------+
| job_id | state |
+--------+---------+
| 1 | success |
| 2 | running |
| 3 | errored |
| 4 | success |
+--------+---------+
mysql> select * from job_label
+--------+-----------+--------+
| job_id | label_key | label |
+--------+-----------+--------+
| 1 | name | job 1 |
| 1 | type | normal |
+--------+-----------+--------+
在 Java 类方面,我有这个类:
@Entity
@Table(name = "job_record")
public class JobRecord {
@Id
@Column(name = "job_id")
private String jobId;
@Enumerated(EnumType.STRING)
@Column(name = "state")
private JobState state;
}
我尝试为 job_label
定义一个类看起来像这样:
public class JobLabelRecord {
@Enumerated(EnumType.STRING)
@Column(name = "label_key")
private JobLabelKey key;
@Column(name = "label")
private String label;
}
然后我想要 JobRecord
中的一个字段这为我提供了该工作的所有标签 List<JobLabelRecord>
。但是,我尝试过的任何方法都不起作用。
我尝试声明 JobLabelRecord
如Embeddable
与 JobRecord
中的等效字段如Embedded
。我尝试过使用 ManyToOne
和OneToMany
映射,但是失败了,因为没有 Id
JobLabelRecord
中的列(我对这些所做的任何事情都无法正常工作)。
我应该使用 ElementCollection
在这里?我也尝试过,但没有成功。
这里有什么想法吗?谢谢!
最佳答案
您可以通过搜索“jpa elementcollection alone table”找到一个简单的示例,例如 JPA Tutorial - JPA ElementCollection CollectionTable Override Example 。将此示例应用于您的问题会得出以下结果:
@Entity
@Table(name = "job_record")
public class JobRecord {
@Id
@Column(name = "job_id")
private Integer jobId;
@Enumerated(EnumType.STRING)
@Column(name = "state")
private JobState state;
@ElementCollection
@CollectionTable(name="job_label",
joinColumns=@JoinColumn(name="job_id"))
private List<JobLabelRecord> labels;
...
@Embeddable
public class JobLabelRecord {
@Enumerated(EnumType.STRING)
@Column(name = "label_key")
private JobLabelKey key;
@Column(name = "label")
private String label;
...
另请注意,JobRecord
id 可能应该是一个Integer
。
关于java - JPA 和非原始 ElementCollection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56365876/
public enum ReportStatus { SUCCCEED, FAILED; } public class Work { @ElementCollection @E
如何使用 JPQL 通过 ElementCollections 查询 JPA 实体,其中 ElementCollection 包含给定元素集中的所有元素? 例如,如果 Node 实体定义了“属性”的
我的目标是克隆实体“产品”及其所有过滤器。 例如,我有一个实体(为简单起见,省略了 getter 和 setter): @Entity public class Product { @Id
我有一个这样声明的“标签”属性: @Entity public class BlogArticle { [...] @ElementCollection(fetch = FetchTy
我有 JavaEE 应用程序并使用 Hibernate 4.3.7.Final。在我的数据库中有两个表:RECHT(包含列:RECHT_RECHTEART(VARCHAR)和GEOB_ID(NUMBE
我想减少 spring 运行的查询量。当通过 SQL 获取带有 @ElementCollection 的对象时,我想直接通过查询中的 JOIN 获取 ElementCollections 的数据。 具
我使用 Hibernate 3.5.6 作为我的 JPA 2.0 实现。我正在尝试在我的实体中构建一个 @ElementCollection(省略了许多字段): @Entity public clas
我有一个包含元素集合的实体类 PositionOrdering: @ElementCollection(targetClass = Position.class, fetch = FetchType.
我有一个多对多关系,它为项目分配标签(除了字符串之外什么都没有): +------+ +------------+ +-------+ | ITEM | | ITEM_LABEL |
我有一个 @Entity命名 Video ,它包含 @ElementCollection标签: @Entity @Table(name = "videos") public class Video {
我试图弄清楚如何使用枚举列表(@ElementCollection)对实体进行 DTO 投影。不幸的是,缺少 QueryDsl 文档,在这里我只能找到版本 3 的结果 不是 适用于版本 4。 @Ent
我有一个具有不同字段的实体: @Entity public class TestEntity { private int id; private String name; pr
给定一个实体产品 @Entity public class Product { private Long id; private List reviews; public Pr
我的数据库中有两个表,如下所示,外键来自 job_label.job_id到 job_record 中的等效列。此外,job_id 的三元组, label_key ,和label在job_record
我有一个具有不同字段的实体: @Entity public class TestEntity { private int id; private String name; pr
我有一个 @ElementCollection @CollectionTable( name = "orgattributes", joinColumns = @JoinColumn(name =
我有一个 User 类,可以有多个登录名: @Entity public class User { @ElementCollection private List logins = new A
对于这个问题,请考虑以下示例: @Entity public class File { public static enum Permission { READABLE, WRITEABLE,
无论如何,我可以在没有这个注释的情况下获得 @ElementCollection 的效果吗?我使用的是 Hibernate 3.3,而 @ElementCollection 和 @Collection
我有以下实体,对此示例进行了简化: @Entity public class Subscription { @Column private String user; @Column
我是一名优秀的程序员,十分优秀!