1
我使用Spring和Hibernate建立了一個數據庫應用程序,並且使用了多對多關係。 下面的代碼:org.hibernate.hql.internal.ast.QuerySyntaxException:寫入未映射
Author.java
@ManyToMany(cascade = {CascadeType.ALL})
@JoinTable(name = "writes", joinColumns = {@JoinColumn(name = "authorId")}, inverseJoinColumns = {@JoinColumn(name = "publicationId")})
private Set<Publication> publications = new HashSet<Publication>();
Publication.java
@ManyToMany(mappedBy = "publications")
private Set<Author> authors = new HashSet<Author>();
這幾行代碼生成一個名爲一個連接表寫,但是當我嘗試通過運行一個查詢所有的表int給我錯誤,在上面命名。
這是方法,即schould運行查詢:
@Transactional
public List<Author> findAuthorByLastname(String lastName) {
String hql = "from Author a, Publication p, writes w where a.id = w.authorId and p.id = w.publicationId and a.lastname = :lastName";
Query q = sessionFactory.getCurrentSession().createQuery(hql);
q.setParameter("lastName", lastName);
List<Author> result = q.list();
return result;
}
感謝您的提示! 我從來不喜歡加入運算符,但似乎我必須熟悉它! ;) 我有另一個問題:選擇*不起作用的HQL ..最新的替代方案? – bethlis