【发布时间】:2015-08-07 14:30:10
【问题描述】:
基本上我想将开始城市和结束城市引用到 Bay 对象。已经创建了。
桌子被装箱了......但我只能找到一个海湾领域。并且在保存的同时
19:14:52,723 调试 [SqlExceptionHelper] 无法执行语句 [n/a] org.postgresql.util.PSQLException:错误:“bay”列中的空值违反非空约束 详细信息:失败行包含 (3, 0, null, null, null, null)。 在 org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2270) 在 org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1998) 在 org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:255) 在 org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:570) 在 org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:420) 在 org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate(AbstractJdbc2Statement.java:366) 在 org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:102) 在 org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:186)
生成的表:
创建表 iot.vehicle
(
vehicle_id 整数 NOT NULL,
成本大,
没有时区的结束时间时间戳,
satrttime 没有时区的时间戳,
车辆类型整数,
海湾整数 NOT NULL,enter code here
约束vehicle_pkey PRIMARY KEY (vehicle_id),
约束 fk_1w93t3827hqk1dji0s585ocf1 外键(bay)
参考 iot.bay (bay_id) MATCH SIMPLE
更新无操作 删除无操作
)
}
公共类车辆{
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name = "VEHICLE_ID")
private int vehicleId;
@ManyToOne(cascade = CascadeType.ALL, fetch=FetchType.EAGER)
@JoinColumn(name="BAY", nullable = false, insertable = false, updatable = false)
private Bay startCity;
@ManyToOne(cascade = CascadeType.ALL, fetch=FetchType.EAGER)
@JoinColumn(name="BAY", nullable = false, insertable = false, updatable = false)
private Bay endCity;
@Column(name = "SATRTTIME")
private Date startTime;
@Column(name = "ENDTIME")
private Date endTime;
@Column(name = "COST")
private long cost;
@Column(name = "VEHICLETYPE")
private TranportType vehicleType;
}
公共课湾{
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name = "BAY_ID")
private int bayId;
@Column(name = "COUNTRY", nullable = false)
String country;
@Column(name = "CITINAME", nullable = false)
String citiName;
@Column(name = "BAYTYPE")
TranportType bayType;
//getter/setter }
【问题讨论】:
-
保存Vehicle 时,显然没有设置bay 值(startCity 和endCity)。并且不要给他们相同的名字(@JoinColumn(name="...")
-
完美......这是我的错误给出了相同的值......我给出了不同的值并且现在正在工作。
-
所以我写了一个答案,以便其他人更好地看到。你可以接受它,因为它对你有用,只是为了让它显而易见。
标签: java spring hibernate postgresql