2

クラスUserとクラスAddressがあります。アドレスには4つのプロパティのみが含まれます。

publiс class Address {

    private Long id;
    private String country;
    private String city;
    private String street;

    // getters and setters
}

そしてユーザーの構造:

public class User {
    private Long id;
    private String name;
    private Address homeAddress;
    private Address businessAddress;

    // other fields and methods
}

選択するJPA関係のタイプと、この場合、1つのエンティティUser)に独自のタイプのカスタムクラス(Address)を持つ2つ(またはそれ以上)のフィールドがある場合に、アノテーションを介してそれを作成する方法は

ユーザーのアドレスが1つしかない場合は、1対多の関係になります。しかし、この場合はどうですか?システムでこれらのオブジェクトを正しく定義するにはどうすればよいですか?

usersAddressクラスに別のフィールドを作成しようとしました:

@OneToMany(mappedBy = "?")
private List<User> users;

しかし、UserクラスにはAddress typeのフィールドが2つあるため、これは私の問題の解決策ではありません。mappedByそして、注釈で定義する必要があるかどうかは明らかではありません...

アドバイスをいただければ幸いです。

4

1 に答える 1

0
    public class User {
    private Long id;
    private String name;
    private Address homeAddress;
    private Address businessAddress;

    // other fields and methods

    @OneToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
    @JoinColumn(name = "HOME_ADDRESS_ID")
    public Address getHomeAddress() {
        return homeAddress;
    }

    public void sethOMEAddress(Address homeAddress) {
        this.homeAddress= homeAddress;
    }

    @OneToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
    @JoinColumn(name = "BUSINESS_ADDRESS_ID")
    public Address getBusinessAddress() {
        return businessAddress;
    }

    public void setBusinessAddress(Address businessAddress) {
        this.businessAddress= businessAddress;
    }
}

クラスのアドレスは同じままです。

于 2012-11-11T16:54:27.613 に答える