java—当我的查询只是选择值jqpl时,如何解决插入错误

kqhtkvqz  于 2021-07-23  发布在  Java
关注(0)|答案(0)|浏览(175)

我的项目是一个pollingapp,基本上一个用户可以有几个投票,一个投票可以有几个投票选项。
我有一个jpql查询,它试图获取投票中投票最多的选项,但是我的dababase返回一个错误,说他试图在表中插入一个新值 pollings ,我很困惑。
我的问题是:

@Query(value = "SELECT opt from Poll pol " +
        "JOIN pol.options opt " +
        "WHERE opt.votes.size = (SELECT max(opt2.votes.size) from pol.options opt2) AND " +
        "pol.id = ?1")

我将在这里发布来自用户、投票和选项类的关系
用户

@OneToMany(mappedBy = "owner", orphanRemoval = true, cascade = CascadeType.ALL)
private Set<Poll> pollings = new HashSet<>();

@ManyToMany
@JoinTable(name = "user_votes",
        joinColumns = @JoinColumn(name = "user_id", referencedColumnName = "id"),
        inverseJoinColumns = @JoinColumn(name = "option_id", referencedColumnName = "id"))
private Set<Option> votes = new HashSet<>();

投票

@ManyToOne
@JoinColumn(name = "owner_id", nullable = false)
private User owner;

@OneToMany(mappedBy = "poll", orphanRemoval = true, cascade = CascadeType.ALL)
private Set<Option> options = new HashSet<>();

选项

@ManyToOne
@JoinColumn(name = "poll_id", nullable = false)
private Poll poll;

@ManyToMany(mappedBy = "votes")
private Set<User> votes = new HashSet<>();

当我尝试执行查询时,我保留了一个user、poll和两个选项,它们经过了正确的测试,下面是我的错误:

WARN 26113 o.h.engine.jdbc.spi.SqlExceptionHelper   : SQL Error: 23502, SQLState: 23502
ERROR 26113 o.h.engine.jdbc.spi.SqlExceptionHelper   : NULL not allowed for column "OWNER_ID"; SQL statement:
insert into pollings (description, is_enabled, owner_id, title, id) values (?, ?, ?, ?, ?) [23502-200]

我在我调用的行中调试了查询,也执行了查询求值的表达式和一个有同样的错误,对不起我的英语,我来自巴西只是学习,如果有人要求一些代码我可以提供,谢谢你的关注。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题