-2

以前にこれを尋ねたところ、mapped by を見るように言われました。

2 つのテーブルがあります: s_id(key) name cli type

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 への参照を持たない単なる基本的なエンティティ クラスです。

うまくいけば、それは明らかです。私の質問は次のとおりです。このような単純な結合を行うには、結合テーブルが本当に必要ですか? 単純な結合列などでこれを行うことはできませんか?

したがって、これがあれば、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 テーブルに外部キーがないことですか?

マップされた by を省略すると、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 に答える