私はJPAで直感的な関係があると思いました。このように見えます。 CompanyGroup:PSQLException:エラー:または近くに文法エラーがあります
@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;
}
私はこれが動作しないセッター、ゲッターなど
を省略しています。私は完全に空のデータベースにCompanyGroup(2社、各社は2人のユーザー、すべてのエンティティは一意です)を保存しようとしています。
私はこのようなサービスにアクセスする春のデータを使用して、これを持続:
@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)
うまくいけば、私は愚かな何かを行っているが誰かがすばやく見つけることができます。私はこれを解決する方法を知らない。
EDIT:私のpom.xmlで
ドライバ:
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>9.4.1211</version>
</dependency>
ここで起こっていることと同じに見えます:http://stackoverflow.com/questions/3608420/hibernate-saving-userモデルからポストグル –