以前にこれを尋ねたところ、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'