首页 文章

Hibernate ManyToOne有两列

提问于
浏览
-1

基本上我想将开始城市和结束城市引用到Bay对象 . 哪个已经创建 .

表得到了装箱.....但我只能找到一个海湾场 . 在保存的同时

19:14:52723 DEBUG [SqlExceptionHelper]无法执行语句[N / A] org.postgresql.util.PSQLException:错误:在列“托架”空值违反非空约束详情:发生故障的行包含(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)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时间戳没有时区,vehicletype整数,海湾整数NOT NULL, enter code here 约束vehicle_pkey PRIMARY KEY(vehicle_id),约束fk_1w93t3827hqk1dji0s585ocf1外键(BAY)引用iot.bay(bay_id)匹配简单更新没有操作删除没有操作)}

公共类车辆{

@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 / setters}

1 回答

  • 1

    当您持久存在Vehicle时,显然不会设置托架值( startCityendCity ) .

    并且不要给他们相同的名字:

    @JoinColumn(name="...") //<- change name attribute here
    

相关问题