Класс Style содержит четыре переменные, а именно pid, Имя, Экран, StyleId. а класс StyleExp имеет переменные с именами StyleId,EId, sno,exp.
В классе Style pid, Sname, Scrn являются основными ключи, а в классе StyleExp, StyleId, EId являются первичными ключами. Между этими двумя классами у меня есть связь один-ко-многим.
Я предоставил сопоставление, подобное следующему, в классе Style,
Код: Выделить всё
@Entity(name="Style")
@Table(name="Style")
@IdClass(StylePk.class)
public class Style implements Serializable{
@Id
private String pid;
@Id
private String Sname;
private String styleId;
.....
@OneToMany(fetch=FetchType.Lazy, mappedBy="style")
protected List styleExp;
}
Код: Выделить всё
@Entity(name="StyleExp")
@Table(name="StyleExp")
public class StyleExp implements Serializable{
@Id
private String styleId;
@Id
private String eId;
@ManyToOne(fetch=FetchType.Lazy)
@JoinColumns({
@JoinColumn(name="styleId",
referencedColumnName="styleId",insertable=false,updatable=false)
})
protected Style style;
}
Код: Выделить всё
Style style = styleDao.getStyle(pid, Sname, Scrn)
List styleExpList = style.getStyleExp();
causedBy: org.hibernate.AnnotationException: referencedColumnName(styleId) of StyleExp.style, ссылающаяся на model.Style не сопоставлен ни с одним свойством
Пожалуйста, дайте мне знать, какую ошибку я делаю? и еще одно сомнение для меня: в JPa возможно сопоставление непервичного ключа и первичного ключа OneToMany и ManyToOne?
Из-за того, что непервичный ключ сопоставлен с первичным ключом, является ли проблема в приведенной выше ситуации?
Пожалуйста, помогите мне.
Заранее спасибо.
Подробнее здесь: https://stackoverflow.com/questions/307 ... pa-mapping
Мобильная версия