我遇到了一个奇怪的问题,方法session.save()是抛出语法异常"org.postgresql.util.PSQLException: ERROR:语法错误在或接近“user”-look的图片上,您可以看到映射表、hibernate查询和它的参数,所有这些看起来都是对的,我不知道问题在哪里。列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;
}
}
因此,序列在增加,但是用户没有保存图像:
发布于 2014-10-04 05:12:00
USER
是 reserved word。重命名表
@Table(name="usertable")
发布于 2014-10-04 05:22:15
我认为您需要在DB中重新创建表,并指定其他表名。请查看此链接:How to configure Hibernate to put quotes around table names
发布于 2014-10-04 05:26:21
如果重命名没有工作,尝试此问题是与数据库。
<property name="hibernate.hbm2ddl.auto">update</property>
这将根据每个bean类自动在任何db上创建数据库表。另外,检查您创建的序列是否同名。
https://stackoverflow.com/questions/26193141
复制