this is my sql
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;
this is my 2 entity
@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;
}
}
In main function, when I write
Session session = HibernateUtil.getSessionFactory().openSession();
session.beginTransaction();
...
Eclipse says
mappedBy reference an unknown target entity property: quang.entity.PeopleClass.LiveInMem in quang.entity.RoomClass.peoples
Why do I get this error?
Try making Peoples
and all other class variables lower-case.
This is the usual/standard Java
code convention.
I am not sure but I strongly suspect this is related to your problem.