session.save() 方法的语法错误

Posted

技术标签:

【中文标题】session.save() 方法的语法错误【英文标题】:syntax error on session.save() method 【发布时间】:2014-10-04 13:09:07 【问题描述】:

我遇到了一个奇怪的问题,方法 session.save() 正在抛出语法异常 “org.postgresql.util.PSQLException:错误:“用户”或附近的语法错误” - 看附图,你可以看到映射表,休眠查询和它的参数,看起来都不错,我不知道问题出在哪里。 列 id_user 具有自动生成的序列,并且每次我尝试调用 save() 方法时,该序列的值都会增加。 用户映射类:

package com.wily.model;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;

@Entity
@Table(name="user")
@SequenceGenerator(sequenceName="user_id_user_seq", name="userSequence")
public class User 

    @Id
    @Column(name="id_user")
    @GeneratedValue(generator="userSequence")
    private int id;

    @Column(name="username")
    private String username;

    @Column(name="password")
    private String password;

    @Column(name="email")
    private String email;

    public int getId() 
        return id;
    
    public void setId(int id) 
        this.id = id;
    
    public String getUsername() 
        return username;
    
    public void setUsername(String username) 
        this.username = username;
    
    public String getPassword() 
        return password;
    
    public void setPassword(String password) 
        this.password = password;
    
    public String getEmail() 
        return email;
    
    public void setEmail(String email) 
        this.email = email;
    


因此,序列正在增加,但用户未保存,图像:

【问题讨论】:

另见:Hibernate saving User model to Postgres 【参考方案1】:

USER 是一个PostgreSQL reserved word。重命名表格

@Table(name="usertable")

【讨论】:

【参考方案2】:

我认为您需要在 DB 中重新创建表并指定其他表名。请查看此链接:How to configure Hibernate to put quotes around table names

【讨论】:

【参考方案3】:

如果重命名不起作用,试试这个 问题出在数据库上。

<property name="hibernate.hbm2ddl.auto">update</property>

这将根据 bean 类在任何 db 上自动创建数据库表。 还要检查您创建的序列是否同名。

【讨论】:

以上是关于session.save() 方法的语法错误的主要内容,如果未能解决你的问题,请参考以下文章

详解JavaScript中的异常处理方法

确定 VBA 中当前错误处理方法的语法

为什么语法错误会出现在erlang spawn函数调用中 - “语法错误之前:')'”?

IDEA报错稀有语法问题

学react时使用jsx语法报错怎么办

error C2143: 语法错误 : 缺少“;”(在“&”的前面)