基本上我想将开始城市和结束城市引用到Bay对象。哪个已经创建。
表得到了装箱.....但我只能找到一个海湾场。并在保存期间
19:14:52,723 DEBUG [SqlExceptionHelper]无法执行语句[n / a] org.postgresql.util.PSQLException:错误:“bay”列中的null值违反了非null约束 细节:失败的行包含(3,0,null,null,null,null)。 at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2270) at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1998) at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:255) 在org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:570) at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:420) at 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)
生成表:
CREATE TABLE iot.vehicle
(
vehicle_id整数NOT NULL,
费用bigint,
没有时区的结束时间戳,
没有时区的satrttime时间戳,
车型整数,
bay integer NOT NULL,enter code here
CONSTRAINT vehicle_pkey PRIMARY KEY(vehicle_id),
CONSTRAINT fk_1w93t3827hqk1dji0s585ocf1 FOREIGN KEY(bay)
参考文献iot.bay(bay_id)MATCH SIMPLE
ON更新没有操作,不执行任何操作
)
}
公共类车辆{
@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方法 }
答案 0 :(得分:1)
当您坚持使用Vehicle时,您显然不会设置托架值(startCity
和endCity
)。
并且不要给他们相同的名字:
@JoinColumn(name="...") //<- change name attribute here