java - hibernate java.sql.SQLException : No value specified for parameter 1

标签 java sql database hibernate

我想从用户加入的数据库中提取所有事件。

DAO:

public List<Event> getUserJoinedEvents(User user) {
        return sessionFactory.getCurrentSession()
                .createQuery("FROM Event event WHERE event.eventMembersJoined = :user")
                .setParameter("user", user).list();

实体:

...  
 @JoinTable(name="MEMBERS_JOINED_EVENT", 
                        joinColumns={@JoinColumn(name="JOINED_EVENT_ID")}, 
                        inverseJoinColumns={@JoinColumn(name="USER_ID")})
        private Set<User> eventMembersJoined = new HashSet<User>();
...

结果出现异常:

java.sql.SQLException: No value specified for parameter 1

我错过了什么?

最佳答案

eventMembersJoined 是一个 Set,但您可以使用 = 将其与 User 类型的参数进行比较。 要检查集合是否包含特定元素,请尝试使用以下命令:

FROM Event event WHERE :user in elements(event.eventMembersJoined)

关于java - hibernate java.sql.SQLException : No value specified for parameter 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27665725/

相关文章:

java - Android Firestore,如何在一个文档中设置多个时间戳

database - 甲骨文 11g : How to override default schema tables with test tables for my test user

mysql - 存储过程中的语法错误

MySQL 数据库设计问题 - 存储索引列表/数组

java - 在H2控制台中找不到用JAVA创建的H2数据库?

java - 如何在 Selenium 中找到 Telerik 控件?

java - 为什么一个 arraylist 的副本被修改时会发生变化

java - 重新实现 "ToneMatrix"音频玩具

mysql - 运行MYSQL代码时出错-- super 困惑

java - 根据第一个表列中的数据从单独的表中选择列