我在我的项目中使用Spring引导和Spring数据,我有两个类:
class Mission implements Serializable { private static final long
serialVersionUID = 1L;
@Id
@GeneratedValue( strategy = GenerationType.IDENTITY )
private Long id;
private String departure;
private String arrival;
private Boolean isFreeWayEnabled;
@OneToMany( mappedBy = "mission" )
private List<Station> stations;
// getters and setters
}
第二类是:
@Entity
public class Station implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue( strategy = GenerationType.IDENTITY )
private Long id;
private String station;
@ManyToOne( fetch = FetchType.LAZY )
@JsonBackReference
private Mission mission;
//getters and setters
}
增加任务的方法:
public Mission addMision( Mission mission ) {
// TODO Auto-generated method stub
// Mission mission = getMissionById( mission.getId() );
for ( Station station : mission.getStations() ) {
station.setMission( mission );
stationRepository.save( station );
}
return missionRepository.save( mission );
}
当我试图添加一个新任务时,它在Json对象上面给出了一个错误:
{"出发":"fff","到达":"ffff","isFreeWayEnable": false,"车站":[{"id": 1},{"id": 2}]}
移动是不持久的,你需要要么保存它,要么在Station中级联它,而且你有一个双向关系,这意味着关系的每个部分都应该引用另一个部分,所以在你的任务类中初始化站点列表
@OneToMany( mappedBy = "mission" )
private List<Station> stations = new ArrayList<>();
在你的站中添加瀑布
@ManyToOne( fetch = FetchType.LAZY, cascade=CascadeType.ALL )
@JsonBackReference
private Mission mission;
然后在您的添加逻辑中,将关系的每一部分引用到另一部分
public Mission addMision( Mission mission ) {
List<Station> stations = mission.getStations();
mission.setStations(new ArrayList<Station>());
for ( Station station : stations ) {
station.setMission( mission );
mission.getStations.add(station);
mission = stationRepository.save( station ).getMission();
}
return mission;
}
我试图在名为Person和Address的两个实体之间建立单向关系,同时保存Person(包含地址集合)获取组织。冬眠TransientObjectException:对象引用未保存的临时实例。 当我更改cascadeType=all时,子对象正在传播。但这里的问题是cascadeType=all Hibernate在删除所属实体时也会尝试删除子实体。我不希望发生这种情况,因为在很多关系中,子实体
当我尝试使用hibernate postgresql获取列表时,我收到以下错误 MyObject: 用户: 首先,我获取用户并将其保存在用户对象中: 然后,当我试图通过用户获取MyObject的列表时: 我收到 我做错了什么?
我正在尝试将值更新到表中。如果新创建和保存的日期范围id工作正常。但是当试图更新现有日期范围id的值时,它会给我一个错误“org”。冬眠TransientObjectException:对象引用未保存的临时实例-在刷新之前保存临时实例:'。如何更新两种情况下的表值?
我有两个模型类,用户和问候如下。用户表中的外键(称呼_id)是可选的。为了在合并后立即刷新会话对象时保存用户对象,我得到以下错误信息。 对象引用未保存的临时实例-在刷新之前保存临时实例:com。实例模型打招呼 表中的数据称呼已经独立于用户表插入。当我试图保存salutation_id为空的用户对象时,它会抛出这个错误。 任何帮助都是值得的。 谢谢你的帮助。
我有一个主表和一个表,它们之间有一对一的关系。在添加
问题内容: 使用Hibernate保存对象时收到以下错误 问题答案: 你应该在集合映射中包括如果使用xml)或(如果使用注释)。 发生这种情况是因为你的实体中有一个集合,并且该集合具有一个或多个数据库中不存在的项目。通过指定上述选项,你可以告诉hibernate在保存其父项时将它们保存到数据库中。