0

次の例で説明したい問題があります。

JPAクラスの人物:

    @ManyToMany(mappedBy = "persons")
    private List<Car> cars= new ArrayList<>();

    public void setCars(List<Car> cars) {
        this.cars= cars;
    }

    public List<Car> getCars() {
        return cars;
    } 

問題が発生する場所:

サーブレット クラス:

Person person = genericDao.findOne(1);
request.setAttribute("person", person.getName());

List<Car> cars= new ArrayList<Car>();    
cars= person.getCars();
request.setAttribute("cars", cars);

問題は、車を手に入れようとするときです。データベースから自動的に取得され、Person クラスの配列に保存されるわけではありません。多対多の関係を持つ JPA クラスをセットアップするにはどうすればよいですか。そこから関係を持つオブジェクトを簡単に取得できます。

車.java

輸入品は取り残されました!

@Entity
@Table(name = "DSD_Cars")
public class Car extends ModifiableEntity {

    private String name;
    private String description;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    @ManyToMany
    @JoinTable(
            name="DSD_Persons_Cars",
            joinColumns = {@JoinColumn(name="IDCar", referencedColumnName = "ID")},
            inverseJoinColumns = {@JoinColumn(name = "IDPerson", referencedColumnName = "ID")}
    )
    private List<Person> persons= new ArrayList<>();

    public void setPersons(List<Person> persons) {
        this.persons= persons;
    }

     public List<Persons> getPersons() {
        return persons;
     }}
4

1 に答える 1

0

問題は解決されました:

Car クラスには @Table(name = "DSD_Cars") アノテーションがありました。ただし、@Table は間違ったインポート ルールを使用していました。@Table タイプを JPA バージョンに変更した後、すべてが機能しました。@Table が適切に定義されていない場合、JPA はクラス名を使用しているようです。それはエラーを説明しています。

時間を割いて私を助けてくれたみんなに感謝します!

于 2012-11-05T12:22:55.457 に答える