繁体   English   中英

Hibernate 查询语言:为我的查询获取 SQL 语法错误

[英]Hibernate Query Language: Getting a SQL Syntax Error for my Query

我已经检查了许多相关问题,但那里的答案还没有解决我的问题。

我有通过 Hibernate 映射的实体UserCharacter

@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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM