私はJPAを初めて使用し、いくつかのエンティティを作成するのに苦労しています。
私が構築しているアプリケーションでは、データベースで定義されたエリアとサブエリアに従っていくつかのエンティティを分類することができます。
関連するテーブルは次の 4 つです。
1) 分類
+-------------+-----------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+-----------------------+------+-----+---------+----------------+
| ID | int(11) unsigned | NO | PRI | NULL | auto_increment |
| pID | int(11) unsigned | NO | MUL | NULL | |
| reference | varchar(300) | NO | | NULL | |
| link | varchar(255) | YES | | NULL | |
+-------------+-----------------------+------+-----+---------+----------------+
2) cls_area_map
+---------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------+------------------+------+-----+---------+----------------+
| class | int(11) unsigned | NO | MUL | NULL | |
| idarea | int(11) unsigned | NO | MUL | NULL | |
| subarea | int(11) unsigned | YES | MUL | NULL | |
| id | int(11) unsigned | NO | PRI | NULL | auto_increment |
+---------+------------------+------+-----+---------+----------------+
3) 面積
+--------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------+------------------+------+-----+---------+----------------+
| idarea | int(11) unsigned | NO | PRI | NULL | auto_increment |
| label | varchar(255) | NO | UNI | NULL | |
+--------+------------------+------+-----+---------+----------------+
4) サブエリア
+-------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+------------------+------+-----+---------+----------------+
| area_idarea | int(11) unsigned | NO | MUL | NULL | |
| label | varchar(255) | NO | UNI | NULL | |
| ID | int(11) unsigned | NO | PRI | NULL | auto_increment |
+-------------+------------------+------+-----+---------+----------------+
にclassification
一般的な分類情報を保存しcls_area_map
、 に一般的な情報を分類の領域 ( と で定義) に関連付けようとしarea
ますsubarea
。
分類エリア マッピング情報を自分Classification
と自分のCls_area_map
エンティティ クラスに追加しようとすると、問題が発生します。
エラーが発生します:
An incompatible mapping has been encountered between [class Entity.Classification] and [class Entity.Cls_area_map]. This usually occurs when the cardinality of a mapping does not correspond with the cardinality of its backpointer..
カーディナリティについて何が間違っているのかわかりません。これはClassification
、関係を作成するために追加したものです。
@OneToMany(mappedBy = "id")
private List<Cls_area_map> cls_area;
とでCls_area_map
:
@JoinColumn(name = "class",referencedColumnName = "ID")
@ManyToOne(optional=false)
private Classification classy;
説明/ヒントはありますか?
(そして とはどういう意味backpointer
ですか?)