[英]Hibernate Query Language: Getting a SQL Syntax Error for my Query
I already checked many related questions but the answers there did not fix my problem yet.我已经检查了许多相关问题,但那里的答案还没有解决我的问题。
I have entities User
and Character
that are mapped via Hibernate.我有通过 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;
...
}
I want to select all characters that have a specific username, so the query that I use looks like this:我想 select 所有具有特定用户名的字符,所以我使用的查询如下所示:
private final static String RETRIEVE_CHARACTERS_FOR_USER = "select c from Character as c inner join User as u where u.username = :paramUsername";
and my Code looks like this:我的代码如下所示:
result = session.createQuery(RETRIEVE_CHARACTERS_FOR_USER, Character.class)
.setParameter(PARAM_USERNAME, user.getUsername()).getResultList();
I also tried to remove the foreign key, use String username
instead of User user
and just query for c.username
, so I am not even sure if the problem is Hibernate related...我还尝试删除外键,使用
String username
而不是User user
,只查询c.username
,所以我什至不确定问题是否与 Hibernate 相关......
I hope you can help me: :)我希望你能帮帮我: :)
This should work:这应该有效:
private final static String RETRIEVE_CHARACTERS_FOR_USER = "select c from Character c where c.user.username = :paramUsername";
Ok, actually it was really a problem with the 'character' keyword... changed the table name to 'charac' and it worked fine.好的,实际上'character'关键字确实有问题......将表名更改为'charac'并且效果很好。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.