4

これは非常に一般的な問題ではないかと思いますが、とにかく解決できませんでした..- イベントや場所を開催したい. 1 つの場所で複数のイベントを実施できます。

要約すると、次の行になります。

位置:

@OneToMany(fetch = FetchType.LAZY, mappedBy="location")
private List<Event> events = new ArrayList<Event>();

イベント:

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "location_id")
private Location location;

私はいつもこのエラーを受け取ります:

最初の SessionFactory の作成に失敗しました。org.hibernate.MappingException: 次のタイプを特定できませんでした: com.mycompany.domain.Location、テーブル: イベント、列: [org.hibernate.mapping.Column(location)]

正直なところ、エラーは表示されません....事前にthx

コード全体:

イベント:

package com.mycompany.domain;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.persistence.*;

@Entity
@Table
public class Event {
@Id
@GeneratedValue
private Long id;

private String name;

private Date date;

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "location_id")
private Location location;

@OneToMany(fetch = FetchType.LAZY, mappedBy = "event")
private List<UserAttendsEvent> userAttendsEvents = new ArrayList<UserAttendsEvent>() ;

@OneToMany(fetch = FetchType.LAZY, mappedBy = "event")
private List<Invoice> invoices = new ArrayList<Invoice>();

public Long getId() {
    return id;
}

public void setId(Long id) {
    this.id = id;
}

public String getName() {
    return name;
}

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

public Location getLocation() {
    return location;
}

public void setLocation(Location location) {
    this.location = location;
}

public List<Invoice> getInvoices() {
    return invoices;
}

public void setInvoices(List<Invoice> invoices) {
    this.invoices = invoices;
}

public List<UserAttendsEvent> getUserAttendsEvents() {
    return userAttendsEvents;
}

public void setUserAttendsEvents(List<UserAttendsEvent> userAttendsEvents) {
    this.userAttendsEvents = userAttendsEvents;
}

public Date getDate() {
    return date;
}

public void setDate(Date date) {
    this.date = date;
}
}

位置:

package com.mycompany.domain;

import java.util.ArrayList;
import java.util.List;

import javax.persistence.*;

@Entity
@Table
public class Location {
@Id
@GeneratedValue
private Long id;

private String name;

private String adress;

@OneToMany(fetch = FetchType.LAZY, mappedBy="location")
private List<Event> events = new ArrayList<Event>();

public Long getId() {
    return id;
}

public void setId(Long id) {
    this.id = id;
}

public String getName() {
    return name;
}

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

public List<Event> getEvents() {
    return events;
}

public void setEvents(List<Event> events) {
    this.events = events;
}

public String getAdress() {
    return adress;
}

public void setAdress(String adress) {
    this.adress = adress;
}
}
4

1 に答える 1

11

すべてのエンティティに注釈 (@Column、@Id、@ManyToOne ...) を配置する方法は 1 つだけ採用する必要があります。注釈を属性に配置するか、getter に配置するかを選択します。混ぜないでください。つまり、属性にアノテーションを付けたり、getter にアノテーションを付けたりしないでください。そうしないと、このエラーが発生します。

于 2016-04-02T16:56:12.000 に答える