-2

我早些时候问过这个问题,并被告知要查看映射的依据。

我有 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.

如何进行OneToManyManyToOne连接,这样我就不需要新列或新表?请给我一个例子。问题是 B 表中缺少外键吗?

如果我省略了映射,我会得到Unknown column 't1.S_S_ID' in 'field list'

如果我输入映射,我会得到Unknown column 'S_S_ID' in 'field list'

4

1 回答 1

1

我找到了,我需要添加@JoinColumn并给它一个名字......

于 2008-10-03T16:42:54.623 回答