1

JPA アノテーションを使用して、テーブル (RoutePlace) とそれ自体との多対多の関係を作成したいと考えています。結合したいテーブルの特異点は、複合キーがあることです。

例: https://h4losw2.files.wordpress.com/2008/10/tables.png

代替テキスト

助言がありますか?

前もって感謝します

4

1 に答える 1

2

あなたの質問が正しいかどうかわかりませんが、次のような意味ですか。

@IdClass(RoutePlacePK.class)
@Entity
public class RoutePlace {
    private Collection<RoutePlace> route;

    @ManyToMany(mappedBy = "place")
    public Collection<RoutePlace> getRoute() {
        return route;
    }

    public void setRoute(Collection<RoutePlace> route) {
        this.route = route;
    }

    private Collection<RoutePlace> place;

    @ManyToMany
    public Collection<RoutePlace> getPlace() {
        return place;
    }

    public void setPlace(Collection<RoutePlace> place) {
        this.place = place;
    }
}

複合主キー ラッパー クラス:

public class RoutePlacePK {
    private int routeID;
    private int placeID;

    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        RoutePlacePK that = (RoutePlacePK) o;

        if (placeID != that.placeID) return false;
        if (routeID != that.routeID) return false;

        return true;
    }

    public int hashCode() {
        int result;
        result = routeID;
        result = 31 * result + placeID;
        return result;
    }
}
于 2008-10-20T13:39:00.900 に答える