【发布时间】:2011-12-12 19:25:33
【问题描述】:
我有一个关系:客户有一个帐户。所以下面的实现是
Account.class:
@Column(name = "client_id")
@GeneratedValue(generator = "gen")
@GenericGenerator(name = "gen", strategy = "foreign",
parameters = { @Parameter(name = "property", value = "clientDTO") })
private int client_id;
Client.class:
@OneToOne(cascade = CascadeType.ALL)
private AccountDTO accountDTO;
我初始化了一个客户、帐户,并为客户设置了帐户,但是当我尝试将其保存到数据库时,我得到了一个异常:
java.sql.BatchUpdateException: 批处理条目 0 插入 public.accounts (balance, client_id, comment, credit_limit, id) 值 (1000.0, 0, comment, 0.0, 8) 被中止。调用 getNextException 到 看看原因。
如您所见,我的应用尝试插入 client_id = 0 的帐户;
我该如何解决?
【问题讨论】:
-
你想做什么?您是否希望帐户 ID 与客户端 ID 具有相同的值(没有额外的 client_id 列),或者您只是想要一个简单的一对一映射,其中帐户表有一个 client_id 列?请发布您的表定义和底层数据库异常(来自 postgresql 日志文件)。
-
尝试使用'insert into public.accounts (balance, client_id, comment, credit_limit, id) values (1000.0, 0, comment, 0.0, 8)'直接查询您的数据库并告诉我们什么数据库在这种情况下说
-
@tscho 我想帐户的字段“client_id”,与字段“id”具有相同的值。所以一个客户有一个帐户
标签: java hibernate postgresql