Связка двух таблиц в Hibernate
Есть две таблицы
- lu(справочники), которые заведены в системе.
- company (компании)
записи в company содержат поле rangid
При создании сущности Company как связать company.rangid и lu.id?
Lu
@Entity
@Table(name = "lu")
public class Lu {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Column
private int tag;
@Column
private String text;
@Column
private int code;
@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
@JoinColumn(name = "rangid")
private List<Company> companyList = new ArrayList<>();
public Lu() {}
public Lu(int tag, String text, int code) {
this.tag = tag;
this.text = text;
this.code = code;
}
public List<Company> getCompanyList() {
return companyList;
}
public void setCompanyList(List<Company> companyList) {
this.companyList = companyList;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public int getTag() {
return tag;
}
public void setTag(int tag) {
this.tag = tag;
}
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
}
Company
@Entity
@Table(name = "company")
public class Company {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Column
private int rangid;
@Column
private String text;
public Company() {}
public Company(int rangid, String text) {
this.rangid = rangid;
this.text = text;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public int getRangid() {
return rangid;
}
public void setRangid(int rangid) {
this.rangid = rangid;
}
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
}
Правильная ли связка?
Пробовала так:
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "id")
private Lu lu;
но начал выдавать ошибку в LuDao в методах, где выбирается Lu, например ссылается на метод
public List<Lu> getLuWithTag(int tag) {
List<Lu> list = (List<Lu>) HibernateSessionFactoryUtil.getSessionFactory().openSession()
.createQuery("FROM Lu WHERE tag = :tag")
.setParameter("tag", tag)
.list();
return list;
}
и выдает NullPointerException