1

@JoinTable各テーブルを2つのフィールドで接続して、注釈を使用する方法はありますか?表の例を次に示します。

+----------------+  +----------------------------------+  +----------------+      
| example_table  |  | example_table_to_some_type_table |  | some_type_table|
+----------------+  +----------------------------------+  +----------------+   
|example_table_id|  |example_table_id                  |  |some_type_id    |
|another_id      |  |some_type_id                      |  |another_id      |
|...             |  |another_id                        |  |...             |
|other columns   |  +----------------------------------+  |other columns   |
|...             |                                        |...             | 
+----------------+                                        +----------------+

多対1の場合、次のようになります。

@ManyToOne
@JoinColumns({ @JoinColumn(name = "some_type_id", 
    referencedColumnName = "some_type_id", 
    insertable = false, updatable = false),
               @JoinColumn(name = "another_id", 
    referencedColumnName = "another_id", 
    insertable = false, updatable = false) })
private SomeType someType;

しかし、多対多の関係はどうですか?次のことを試しましたが、機能しませんでした。

@ManyToMany(targetEntity = SomeType.class)
@JoinTable(name = "example_table_to_some_type_table", 
    joinColumns = { @JoinColumn(name = "example_table_id"),  
                    @JoinColumn(name = "another_id") }, 
    inverseJoinColumns = { 
                    @JoinColumn(name = "some_type_id"),  
                    @JoinColumn(name = "another_id") })
private Set<SomeType> someTypeSet;

次のエラーが発生しました:

Repeated column in mapping for collection: com.package.name.Example.someTypeSet column: another_id

何を見る必要があり、このマッピングのどの部分が正しくありませんか?前もって感謝します。

4

1 に答える 1

2

結合テーブルには4つの列が必要です。2はのPK列をexample_table参照し、他の2つはのPK列を参照しますsome_type_table

だからそれは次のように見えるはずです

+----------------+  +----------------------------------+  +----------------+      
| example_table  |  | example_table_to_some_type_table |  | some_type_table|
+----------------+  +----------------------------------+  +----------------+   
|example_table_id|  |example_table_id                  |  |some_type_id    |
|another_id      |  |example_table_another_id          |  |another_id      |
|...             |  |some_type_id                      |  |...             |
|                |  |some_type_table_another_id        |  |                |
|other columns   |  +----------------------------------+  |other columns   |
|...             |                                        |...             | 
+----------------+                                        +----------------+
于 2013-02-08T19:08:49.240 に答える