我正在尝试将值更新到表中。如果新创建和保存的日期范围id工作正常。但是当试图更新现有日期范围id的值时,它会给我一个错误“org”。冬眠TransientObjectException:对象引用未保存的临时实例-在刷新之前保存临时实例:'。如何更新两种情况下的表值?
DateRange dateRange = new DateRange();
Criteria dateRangeCriteria = session.createCriteria(DateRange.class);
dateRangeCriteria.add(Restrictions.eq("start_date", startDate));
dateRangeCriteria.add(Restrictions.eq("end_date", newendDate));
List drlist = dateRangeCriteria.list();
if(drlist.size()>0){
Iterator it = drlist.iterator();
while(it.hasNext())
{
DateRange std = ( DateRange) it.next();
dateRangeId=std.getDate_range_id();
}
}else{
dateRange.setStart_date(startDate);
dateRange.setEnd_date(newendDate);
session.save(dateRange);
dateRangeId= dateRange.getDate_range_id();
}
Criteria criteria = session.createCriteria(PartFeatureVersion.class);
criteria.add(Restrictions.eq("part.id",partId));
criteria.add(Restrictions.eq("featureversion.id", featureVersionId));
criteria.add(Restrictions.eq("dateRange.id", dateRangeID));
List list = criteria.list();
PartFeatureVersion partfeatureversion = (PartFeatureVersion)list.iterator().next();
//partfeatureversion.setDate_range_id(dateRangeId);
partfeatureversion.setDateRange(dateRange);
session.saveOrUpdate(partfeatureversion);
在现有范围的情况下,对象dateRange永远不会设置,它仍然是初始化的“new DateRange()”。
这应该更好:
DateRange dateRange;
if(...){
dateRange = (DateRange)it.next();
}
else{
dateRange = new DateRange();
...
session.save(dateRange);
}
此外,您不需要保留dateRangeId,您可以在限制中使用对象本身,它将在屏幕后面获取id:
criteria.add(Restrictions.eq("dateRange", dateRange));
我试图在名为Person和Address的两个实体之间建立单向关系,同时保存Person(包含地址集合)获取组织。冬眠TransientObjectException:对象引用未保存的临时实例。 当我更改cascadeType=all时,子对象正在传播。但这里的问题是cascadeType=all Hibernate在删除所属实体时也会尝试删除子实体。我不希望发生这种情况,因为在很多关系中,子实体
我有一个主表和一个表,它们之间有一对一的关系。在添加
我在我的项目中使用Spring引导和Spring数据,我有两个类: 第二类是: 增加任务的方法: 当我试图添加一个新任务时,它在Json对象上面给出了一个错误: {"出发":"fff","到达":"ffff","isFreeWayEnable": false,"车站":[{"id": 1},{"id": 2}]}
我会尽可能具体,所以我想只是要求litle帮助修改这个hbm.xml文件 我的hibernate映射中有这个文件 这是: 我发现一些指南说使用级联操作,当我得到 org.hibernate.瞬态ObjectException:对象引用一个未保存的瞬态实例-在刷新之前保存瞬态实例: 但是我不知道使用哪种方法,我知道cascade=“all”但是我不知道在这种情况下是否有效,我使用这种方法来保存/更新
我对JPA和manytoone的关系感到困惑,我有一个类“Judiction”,它有很多“Judidget”,当我试图将一个Judidge实例存储到postgres db中时,它抛出错误消息如下: 判断类: 还有我的服务课: 在我的数据库中,我有判断表和用户表,我需要为多通关系创建一个作为判断用户的表吗?
我读了很多关于我的问题的文件,但建议不能解决我的问题,所以我被迫打开这个主题。 我的问题是,当我试图保存我的实体时,我遇到了以下错误。我添加了实体类。谢谢 保存代码 员工表 员工上传表