JPAを使用してDBからデータを照会しています。私が得た:JPA、OneToMany、ManyToOne
@Entity
@Table(name = "supporter_1")
public class Supporter{
@Id
...
@OneToMany(mappedBy = "supporter")
List<SubSupporter> subSuporter= new ArrayList<SuBSupporter>();
そして第二のクラス:
@Entity
@Table(name = "supporter_2")
public class SubSupporter{
@Id
private Long id;
...
@ManyToOne
@JoinColumn(name = "supporter_1.id", nullable=false)
Supporter supporter;
そして、私はすべてのサポーターを取得し、それは大丈夫だためにループでそれらに到達しようとしているが、subSupporterリストへのアクセスを試した後、私は取得しますエラー:
[EL Warning]: 2016-07-12 11:29:45.282--ServerSession(180353207)--Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.5.0.v20130507-3faac2b): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: com.microsoft.sqlserver.jdbc.SQLServerException: The multi-part identifier "supporter_1.id" could not be bound.
Error Code: 4104
Call: SELECT ID, coulmn_name, supporter_1.id FROM supporter_2 WHERE (supporter_1.id = ?)
bind => [1 parameter bound]
Query: ReadAllQuery(name="subSupporter" referenceClass=SubSupporter sql="SELECT ID, coulmn_name, supporter_1.id FROM supporter_2 WHERE (supporter_1.id = ?)")
私は選択文が間違っていて、なぜわからないのですか。
PS私はあなたが、列名supporter_1.id
のドットを持つことはできません日食リンク
これは既存のデータベースですか、またはエンティティから生成されたデータベースですか? – Gimby
これは既存のDBで、データはありません。 – Iwnow
"既存のDB"の場合はスキーマ定義を投稿し、実際に "supporter_1.id"という列があるかどうかを説明してください –