我搜索了此異常出現,但沒有辦法使用工作了我的問題休眠:「@OneToMany的目標未映射類
我有兩個類:
@Entity
@Table(name = "user")
public class User {
@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private int id;
@OneToMany
@JoinColumn(name = "tutor_id")
private Set<Tutorium> tutoria;
}
和
@Entity
@Table(name = "tutorium")
public class Tutorium {
@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private int id;
@Colum(name = "tutor_id")
private int tutor_id;
}
所以語義是「一個用戶可以教很多tutoria」。
但是當我ST arting我的申請,我得到異常:
「無法創建SessionFactory的 object.org.hibernate.AnnotationException:中
@OneToMany
或@ManyToMany
針對使用無映射類: model.User.tutoria [model.Tutorium ]」。
有誰知道,我該如何解決這個問題?
編輯:
想給你我如何訪問類的小例子:
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import javax.persistence.TypedQuery;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
public class UserFilter {
private static SessionFactory factory;
public UserFilter() {
try{factory = new Configuration().configure().addAnnotatedClass(User.class).buildSessionFactory();}
catch(Exception e) {}
}
public Collection<User> getUser() {
Session session = factory.openSession();
Transaction t = null;
try{
t = session.beginTransaction();
CriteriaBuilder cb = session.getEntityManagerFactory().getCriteriaBuilder();
Join<User, Tutorium> tutoria = this.root().join("tutoria");
CriteriaQuery output = cb.createQuery(User.class);
output.groupBy(this.root().get("id"));
TypedQuery q = session.getEntityManagerFactory().createEntityManager().createQuery(output);
List users = q.getResultList();
return users;
}
catch(Exception e) {}
finally {
session.close();
}
}
}
的部分與加入和GROUPBY子句尚未被測試。那是我想要實施的功能。但是在我能夠做到這一點之前,拋出了異常。
我希望這個例子大多清楚。
在你的懷抱。xml,你是否使用類路徑掃描來發現類?如果沒有,是否列出了「Tutorium」?或者,有時會發生'Tutorium'中的'@ Entity'註釋不是來自JPA包? – Brian
我沒有創建一個persistence.xml。因爲[link](https://www.tutorialspoint.com/hibernate/)上的教程說,如果使用註釋,則不需要xml-configfile ...:O – Stefan
除了映射看起來像這樣的事實對於你想要的東西是錯的,就像在發佈的答案中所說的那樣,我認爲這不是你問題的原因。看看http://stackoverflow.com/questions/4956855/hibernate-problem-use-of-onetomany-or-manytomany-targeting-an-unmapped-clas –