我有三个表A表有字段
id
带字段的表B
id
带字段的表C
id_a
id_b
id_a
和id_b
分别引用表A的id
和表B的id
。表C的postgres定义如下:
CREATE TABLE C (
id_a BIGINT NOT NULL REFERENCES a(id) ON UPDATE CASCADE ON DELETE CASCADE,
id_b BIGINT NOT NULL REFERENCES b(id) ON UPDATE CASCADE ON DELETE CASCADE,
CONSTRAINT c_pkey
PRIMARY KEY (a, b)
);
然而,在我的代码中,我不需要表C的实体。所以我希望能够在@ManyToOne关系中映射实体A和B:
@Entity
public class A {
private Long id;
@ManyToOne
@JoinTable(name = "C",
joinColumns = @JoinColumn(name = "id_a", referencedColumnName = "id"),
inverseJoinColumns = @JoinColumn(name = "id_a", referencedColumnName = "id"))
private B b;
}
@Entity
public class B {
private Long id;
}
我有一个测试是这样的:
@Test
void shouldFindBForA() {
//given
var a = new A();
var b = new B();
aRepository.saveAndFlush(a);
bRepository.saveAndFlush(b);
//when
A foundA = aRepository.findAll().get(0);
//then
assertThat(foundA.getB()).isNotNull();
}
在isNotNull
断言中失败。
我做错了什么?
两个@JoinColumn都指向同一个id“id_a”
问题内容: 我需要将两个表映射到一个类,但很难弄清楚。一个表是ROOMS,另一个表是TRAINERS。 ROOMS表: 培训人员表: 表应当加入了,和。 ROOMS表的主键是:。TRAINERS表的主键是:。 我需要通过查询这个数据,,,,和。 在SQL中,可能类似于: 我正在项目中其他地方使用ROOMS表,它已经映射为独立对象。是否有一种方法可以将其用作TRAINERS对象的子对象,或者将这两个
问题内容: 考虑以下类别: 映射到“订单”表。是否可以通过外键关系将客户名属性映射到客户表? 问题答案: 是的,您可以为此使用联接映射元素。另一种选择是映射视图而不是表。但是,如果可能的话,您应该采用面向对象的方法,并绘制订单和客户之间的多对多关系。
我正在使用Hibernate和JPA注释来映射我的类。当hibernate尝试映射这个类时,我遇到了一个问题 我的Social alStat类是: 我得到了这个错误: 我猜发生这种情况是因为我试图映射到一个基本类,但@ElementCollection注释不应该解决这个问题吗? 我的item类如下所示:
我有三个表:用户,角色,董事会。每个用户可以有多个板,但在一个板中用户只能有一个角色。我创建了三个类并添加了注释: Hibernate创建一个新表,如下所示: 我使用的是hibernate 4.2.2。
我需要将Java转换为的实例(包括映射内容) 我应该用什么来代替来使此代码可编译?
我有以下数据结构: <代码>地图 我想从这个复杂的 Map 对象中提取它的值(它本身是另一个字符串 Map)。我目前正在这样做: 上面的实现给了我一个新的Map对象,由于外部循环,它正在迭代。似乎我错过了什么。 如何从复杂的 Map 对象中提取内部 Map 对象? 编辑: 回应AlexWien的评论 原始数据结构: 原始数据结构背后的原因是为一对id(ID1和ID2)存储一个值。ID1和ID2可以