2014-12-26 5 views
0

это мой SQLASK Hibernate: ОШИБКА: mappedBy ссылка неизвестной целевой объект собственности

CREATE TABLE room 
(
    room_id INT, 
    primary key (room_id) 
) ENGINE=InnoDB; 
CREATE TABLE people 
(
    people_id INT, 
    live_in INT, 
    primary key (people_id), 
    foreign key (live_in) references room(room_id) 
) ENGINE=InnoDB; 

это мой 2 объект

@Entity 
@Table(name="room") 
public class RoomClass{ 
    private int RoomIdMember; 
    private Set<PeopleClass> Peoples = new HashSet<PeopleClass>(0); 

    @Id 
    @Column(name="room_id") 
    public int getRoomIdMember() { 
     return RoomIdMember; 
    } 
    public void setRoomIdMember(int roomIdMember) { 
     RoomIdMember = roomIdMember; 
    } 

    @OneToMany(fetch = FetchType.LAZY, mappedBy = "LiveInMem") 
    public Set<PeopleClass> getPeoples() { 
     return Peoples; 
    } 
    public void setPeoples(Set<PeopleClass> peoples) { 
     Peoples = peoples; 
    } 
} 

@Entity 
@Table(name="people") 
public class PeopleClass { 
    private int PeopleIdMem; 
    private RoomClass LiveInMem; 

    @Id 
    @Column(name="people_id") 
    public int getPeopleIdMem() { 
     return PeopleIdMem; 
    } 
    public void setPeopleIdMem(int peopleIdMem) { 
     PeopleIdMem = peopleIdMem; 
    } 
    @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL) 
    //@ManyToOne 
    @JoinColumn(name="live_in", referencedColumnName="room_id") 
    public RoomClass getLiveInMem() { 
     return LiveInMem; 
    } 
    public void setLiveInMem(RoomClass liveInMem) { 
     LiveInMem = liveInMem; 
    } 
} 

В основной функции, когда я пишу

Session session = HibernateUtil.getSessionFactory().openSession(); 
session.beginTransaction(); 
... 

Eclipse говорит

mappedBy reference an unknown target entity property: quang.entity.PeopleClass.LiveInMem in quang.entity.RoomClass.peoples 

Зачем нужна эта ошибка?

+0

Попробуйте использовать строчные 'народы' как переменное имя – Reimeus

+0

О, это работает, :) Большое спасибо – guimotcaimail

ответ

0

Попробуйте сделать Peoples и все остальные переменные класса в нижнем регистре.
Это обычное/стандартное соглашение об использовании кода Java.
Я не уверен, но я сильно подозреваю, что это связано с вашей проблемой.