gpt4 book ai didi

java - 错误 : syntax error at or near "user"

转载 作者:太空狗 更新时间:2023-10-29 22:59:25 24 4
gpt4 key购买 nike

我正在使用 Hibernate 并有一个名为“User”的持久类。由于这是一个关键字,我用不同的名称标记了@Entity 属性(例如,我看到了这个问题: Unable to use table named "user" in postgresql hibernate )

但是,我仍然遇到了麻烦,因为这个类扩展了另一个类,而且看起来 hibernate 仍在尝试使用“user”作为列名并且搞砸了:

@Entity( name = "XonamiUser" )
public class User extends PropertyContainer {
...

@MappedSuperclass
public abstract class PropertyContainer implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
protected long key;
/** tags */
@ElementCollection
protected Set<String> tags;

@ElementCollection
protected Set<String> searchList;
...

我的其他扩展 PropertyContainer 的类似乎工作正常。

这是 hibernate 中的错误吗?有什么方法可以解决这种重构不足的问题吗?谢谢!

这是我看到的错误(稍微清理了一下):

WARN org.hibernate.util.JDBCExceptionReporter - SQL Error: 0, SQLState: 42601
ERROR org.hibernate.util.JDBCExceptionReporter - Batch entry 0 insert into user_search_list (user, search_list) values ('1', 'bjorn') was aborted. Call getNextException to see the cause.
WARN org.hibernate.util.JDBCExceptionReporter - SQL Error: 0, SQLState: 42601
ERROR org.hibernate.util.JDBCExceptionReporter - ERROR: syntax error at or near "user"
Position: 31

最佳答案

用户reserved keyword在 PostgreSQL 中。它只允许作为 quoted identifier .

您必须强制 Hibernate 在此 INSERT 命令中使用带引号的 "user"

我不是 Hibernate 专家,但也许这 Hibernate saving User model to Postgres会有帮助吗?

关于java - 错误 : syntax error at or near "user",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9035971/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com