我早些时候问过这个问题,并被告知要查看映射的依据。
我有 2 个表:一个 s_id(key) 名称 cli 类型
B sa_id(key) s_id user pwd.
所以在 Jpa 我有:
@Entity class A...{ @OneToMany(fetch=FetchType.EAGER) @JoinTable( name="A_B", joinColumns={@JoinColumn(name="a_id", table="a",unique=false)}, inverseJoinColumns={@JoinColumn(name="b_id", table="b", unique=true)} ) Collection getB(){...} }
b 类只是一个基本实体类,没有引用 A。
希望这很清楚。我的问题是:我真的需要一个连接表来做这样一个简单的连接吗?这不能用一个简单的joincolumn之类的东西来完成吗?
所以现在如果有这个,但是 jpa 正在尝试用一些不存在的新列编写查询(s_s_id
)
@Entity
class A{
...
@OneToMany(fetch=FetchType.EAGER, mappedBy="s")
Collection<B> x;
}
@Entity
class B{
@ManyToOne
A s;
}
With these tables:
A
s_id(key) name cli type
B
sa_id(key) s_id(the keys from A) user pwd.
如何进行OneToMany
和ManyToOne
连接,这样我就不需要新列或新表?请给我一个例子。问题是 B 表中缺少外键吗?
如果我省略了映射,我会得到Unknown column 't1.S_S_ID' in 'field list'
如果我输入映射,我会得到Unknown column 'S_S_ID' in 'field list'