java – PSQLException:错误:语法错误在或附近
发布时间:2020-05-24 19:40:11 所属栏目:Java 来源:互联网
导读:我认为JPA是一个直接的关系.看起来像这样. CompanyGroup: @Entity@Tablepublic class CompanyGroup implements Serializable { private static final long serialVersionUID = 1L; @Id @GeneratedValue private L
|
我认为JPA是一个直接的关系.看起来像这样. CompanyGroup: @Entity
@Table
public class CompanyGroup implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue
private Long id;
@Column(name = "name")
private String name;
@JoinColumn(name = "companies")
@OneToMany(fetch = FetchType.EAGER,cascade = CascadeType.ALL)
private List<Company> companies;
}
公司: @Entity
@Table
public class Company implements Serializable {
private static final long serialVersionUID = 1L;
@Column(name = "name")
private String name;
@JoinColumn(name = "users")
@OneToMany(fetch = FetchType.EAGER,cascade = CascadeType.ALL)
private List<User> users;
@Id
@GeneratedValue
private Long id;
}
用户: @Entity
@Table
public class User {
@Column(name = "firstName")
private String firstName;
@Column(name = "lastName")
private String lastName;
@Column(name = "email")
private String email;
@Id
@GeneratedValue
private Long id;
}
我省略了setter,getters等. 这不起作用.我正在尝试将一个CompanyGroup(有2个公司,每个公司有2个用户,所有实体都是唯一的)保存到一个完全空的数据库. 我坚持使用Spring-Data,在这样的服务中访问: @Service
public class ConcreteCompanyGroupService implements CompanyGroupService {
@Autowired
private CompanyGroupRepository repository;
@Transactional
@Override
public void save(CompanyGroup group) {
repository.save(Collections.singleton(group));
}
}
当我尝试调用此方法时,我会收到: org.postgresql.util.PSQLException: ERROR: syntax error at or near "User"
Position: 13
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2458)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2158)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:291)
希望我做了一些愚蠢的事情,有人可以很快找到.我不知道如何解决这个问题. 编辑: 我的pom.xml中的驱动程序: <dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>9.4.1211</version>
</dependency>
解决方法您的实体映射到表名称,该表名称是SQL保留关键字(用户).遗憾的是,您选择的JPA提供程序不会自动引用表名标识符,因此在引用该表时会出现异常.解决方案是在@Table注释中自己引用表名,或者将表名更改为不是保留关键字.或者使用JPA提供程序为您自动引用此类保留关键字(例如DataNucleus) (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 为什么SpringMVC中请求的body不支持多次读取
- Java实现计数排序
- javac和scalac警告仅作为某些类型的错误
- java – 为什么在捕获时使用IOexception而不是Exception?
- Java语言多线程终止中的守护线程实例
- java – 如何使用Ebean查询具有onetomany和manytoone关系的
- java – 是否正在创建一个用于测试不良做法的私有构造函数?
- java – 通过Maven使用Junit Categories运行Cucumber测试
- java – maven-resources-plugin:2.6 – 无法创建资源输出
- 如何创建自定义java注释以记录方法参数
