Добрый день. Есть две таблицы: Код | CREATE TABLE status ( id INTEGER NOT NULL DEFAULT nextval('status_id_seq'), status_name VARCHAR(30) NOT NULL, ... PRIMARY KEY (id) );
|
Код | CREATE TABLE cards ( id INTEGER NOT NULL DEFAULT nextval('cards_id_seq'), ... id_status INTEGER NOT NULL, ... FOREIGN KEY (id_status) REFERENCES status(id), PRIMARY KEY (id) );
|
Мапинг осуществляется через анотации: Код | @javax.persistence.Table(name = "status", schema = "public", catalog = "") @Entity public class StatusEntity { private Integer id; private String status_name; private Collection<CardsEntity> cardsById;
public StatusEntity() {}
@Id @javax.persistence.Column(name = "id") @GeneratedValue(strategy = GenerationType.IDENTITY) public Integer getId() { return id; }
public void setId(Integer id) { this.id = id; }
@Basic @javax.persistence.Column(name = "status_name") public String getStatus_name() { return status_name; }
public void setStatus_name(String status_name) { this.status_name = status_name; }
@OneToMany(mappedBy = "statusByIdStatus") public Collection<CardsEntity> getCardsById() { return cardsById; }
public void setCardsById(Collection<CardsEntity> cardsById) { this.cardsById = cardsById; } }
|
Код | @javax.persistence.Table(name = "cards", schema = "public", catalog = "") @Entity public class CardsEntity { private Integer id; private Integer id_status; private StatusEntity statusByIdStatus;
public CardsEntity() {}
@Id @javax.persistence.Column(name = "id") @GeneratedValue(strategy = GenerationType.IDENTITY) public Integer getId() { return id; }
public void setId(Integer id) { this.id = id; }
@Basic @javax.persistence.Column(name = "id_status") public Integer getId_status() { return id_status; }
public void setId_status(Integer id_status) { this.id_status = id_status; }
@ManyToOne @JoinColumn(name = "id_status", referencedColumnName = "id", insertable = false, updatable = false) public StatusEntity getStatusByIdStatus() { return statusByIdStatus; }
public void setStatusByIdStatus(StatusEntity statusByIdStatus) { this.statusByIdStatus = statusByIdStatus; }
|
При попытке выполнить запрос Код | session = HibernateUtil.getSessionFactory().openSession(); transaction = session.beginTransaction(); Query query = session.createQuery("select c from CardsEntity as c inner join StatusEntity as s where s.status_name=:statusName").setString("statusName","PAY"); paymentCards = (List<CardsEntity>) query.list();
|
Получаю следующую ошибку Path expected for join! Проблемо скорей всего в неправильном мапинге, но понять где ошибся не могу. Заранее спасибо.
|