[英]Hibernate Query Language: Getting a SQL Syntax Error for my Query
我已經檢查了許多相關問題,但那里的答案還沒有解決我的問題。
我有通過 Hibernate 映射的實體User
和Character
。
@Entity
@Table(name = "user", uniqueConstraints = @UniqueConstraint(columnNames = { "username" }))
public class User {
@Id
@NotEmpty
@Column(name = "username")
private String username;
...
}
@Entity
@Table(name = "character", uniqueConstraints = @UniqueConstraint(columnNames = { "charId" }))
public class Character {
...
@NotEmpty
@ManyToOne
@JoinColumn(name = "username", referencedColumnName = "username")
private User user;
...
}
我想 select 所有具有特定用戶名的字符,所以我使用的查詢如下所示:
private final static String RETRIEVE_CHARACTERS_FOR_USER = "select c from Character as c inner join User as u where u.username = :paramUsername";
我的代碼如下所示:
result = session.createQuery(RETRIEVE_CHARACTERS_FOR_USER, Character.class)
.setParameter(PARAM_USERNAME, user.getUsername()).getResultList();
我還嘗試刪除外鍵,使用String username
而不是User user
,只查詢c.username
,所以我什至不確定問題是否與 Hibernate 相關......
我希望你能幫幫我: :)
這應該有效:
private final static String RETRIEVE_CHARACTERS_FOR_USER = "select c from Character c where c.user.username = :paramUsername";
好的,實際上'character'關鍵字確實有問題......將表名更改為'charac'並且效果很好。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.