- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我有一个包含 DateActiveScheduleItem 列表的计划对象。我从数据库获取计划,从列表中删除 DateActiveScheduleItem,并使用 Hibernate CrudRepository 中的 .save() 保存它。
nested exception is org.springframework.orm.jpa.JpaSystemException: A collection with cascade="all-delete-orphan" was no longer referenced by the owning entity instance: haughton.daniel.ShoutLoud.model.schedule.Schedule.dateActiveScheduleItems; nested exception is org.hibernate.HibernateException: A collection with cascade="all-delete-orphan" was no longer referenced by the owning entity instance: haughton.daniel.ShoutLoud.model.schedule.Schedule.dateActiveScheduleItems] with root causeorg.hibernate.HibernateException: A collection with cascade="all-delete-orphan" was no longer referenced by the owning entity instance: haughton.daniel.ShoutLoud.model.schedule.Schedule.dateActiveScheduleItems
时间表.java
@Entity
public class Schedule {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@ManyToOne
@JoinColumn(name = "user_id")
private User user;
@ManyToOne
@JoinColumn(name = "usergroup_id")
private UserGroup userGroup;
private String description;
private boolean master;//is this a schedule for all supervalus(true) or one supervalu(false)
@OneToMany(mappedBy = "schedule",cascade = CascadeType.ALL,orphanRemoval=true)
private List<DateActiveScheduleItem> dateActiveScheduleItems = new ArrayList<>();
@OneToMany(mappedBy = "schedule",cascade = CascadeType.PERSIST)
private List<MusicScheduleItem> musicScheduleItems = new ArrayList<>();
@OneToMany(mappedBy = "schedule",cascade = CascadeType.PERSIST)
private List<AdvertisementScheduleItem> advertisementScheduleItems = new ArrayList<>();
@Basic
@Temporal(TemporalType.DATE)
private java.util.Date dateAdded;
public Long getId() {
return id;
}
public Date getDateAdded() {
return dateAdded;
}
public void setDateAdded(Date dateAdded) {
this.dateAdded = dateAdded;
}
public void setId(Long id) {
this.id = id;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public UserGroup getUserGroup() {
return userGroup;
}
public void setUserGroup(UserGroup userGroup) {
this.userGroup = userGroup;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public boolean isMaster() {
return master;
}
public void setMaster(boolean master) {
this.master = master;
}
public List<DateActiveScheduleItem> getDateActiveScheduleItems() {
return dateActiveScheduleItems;
}
public void setDateActiveScheduleItems(List<DateActiveScheduleItem> dateActiveScheduleItems) {
this.dateActiveScheduleItems = dateActiveScheduleItems;
}
public List<AdvertisementScheduleItem> getAdvertisementScheduleItems() {
return advertisementScheduleItems;
}
public void setAdvertisementScheduleItems(List<AdvertisementScheduleItem> advertisementScheduleItems) {
this.advertisementScheduleItems = advertisementScheduleItems;
}
public List<MusicScheduleItem> getMusicScheduleItems() {
return musicScheduleItems;
}
public void setMusicScheduleItems(List<MusicScheduleItem> musicScheduleItems) {
this.musicScheduleItems = musicScheduleItems;
}
public boolean removeDateActiveScheduleItem(Date date){
for(int i =0;i<dateActiveScheduleItems.size();i++){
if(date.getTime()==dateActiveScheduleItems.get(i).getDate().getTime()){
dateActiveScheduleItems.remove(i);
return true;
}
}
return false;
}
public boolean isScheduleActiveToday(){
Calendar now = Calendar.getInstance();
for(int i=0;i<dateActiveScheduleItems.size();i++){
Calendar cal1 = Calendar.getInstance();
Calendar cal2 = Calendar.getInstance();
cal1.setTime(now.getTime());
cal2.setTime(dateActiveScheduleItems.get(i).getDate());
boolean sameDay = cal1.get(Calendar.YEAR) == cal2.get(Calendar.YEAR) &&
cal1.get(Calendar.DAY_OF_YEAR) == cal2.get(Calendar.DAY_OF_YEAR);
if(sameDay==true){
return true;
}
}
return false;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Schedule schedule = (Schedule) o;
if (master != schedule.master) return false;
if (id != null ? !id.equals(schedule.id) : schedule.id != null) return false;
if (user != null ? !user.equals(schedule.user) : schedule.user != null) return false;
if (userGroup != null ? !userGroup.equals(schedule.userGroup) : schedule.userGroup != null) return false;
if (description != null ? !description.equals(schedule.description) : schedule.description != null)
return false;
if (dateActiveScheduleItems != null ? !dateActiveScheduleItems.equals(schedule.dateActiveScheduleItems) : schedule.dateActiveScheduleItems != null)
return false;
if (musicScheduleItems != null ? !musicScheduleItems.equals(schedule.musicScheduleItems) : schedule.musicScheduleItems != null)
return false;
if (advertisementScheduleItems != null ? !advertisementScheduleItems.equals(schedule.advertisementScheduleItems) : schedule.advertisementScheduleItems != null)
return false;
return dateAdded != null ? dateAdded.equals(schedule.dateAdded) : schedule.dateAdded == null;
}
@Override
public int hashCode() {
int result = id != null ? id.hashCode() : 0;
result = 31 * result + (user != null ? user.hashCode() : 0);
result = 31 * result + (userGroup != null ? userGroup.hashCode() : 0);
result = 31 * result + (description != null ? description.hashCode() : 0);
result = 31 * result + (master ? 1 : 0);
result = 31 * result + (dateActiveScheduleItems != null ? dateActiveScheduleItems.hashCode() : 0);
result = 31 * result + (musicScheduleItems != null ? musicScheduleItems.hashCode() : 0);
result = 31 * result + (advertisementScheduleItems != null ? advertisementScheduleItems.hashCode() : 0);
result = 31 * result + (dateAdded != null ? dateAdded.hashCode() : 0);
return result;
}
}
日期事件计划项目
@Entity
public class DateActiveScheduleItem {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Basic
@Temporal(TemporalType.DATE)
private Date date;
public Schedule getSchedule() {
return schedule;
}
public void setSchedule(Schedule schedule) {
this.schedule = schedule;
}
@JsonIgnore
@ManyToOne
@JoinColumn(name = "schedule_id")
private Schedule schedule;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
DateActiveScheduleItem that = (DateActiveScheduleItem) o;
if (id != null ? !id.equals(that.id) : that.id != null) return false;
if (date != null ? !date.equals(that.date) : that.date != null) return false;
return schedule != null ? schedule.equals(that.schedule) : that.schedule == null;
}
@Override
public int hashCode() {
int result = id != null ? id.hashCode() : 0;
result = 31 * result + (date != null ? date.hashCode() : 0);
result = 31 * result + (schedule != null ? schedule.hashCode() : 0);
return result;
}
}
在我的 Controller 中
保存 DateActiveScheduleItem 列表中包含任何内容的任何时间表时,会发生此错误
最佳答案
最常见的问题是覆盖您的集合而不是添加到其中。
如果你碰巧做了类似的事情:
post.dateActiveScheduleItems = list;
这可能会导致以下问题。而不是尝试这个。
post.dateActiveScheduleItems.addAll(list);
您应该使用集合的一个实例,只需清除它,添加到其中,从不覆盖。
关于Hibernate:具有级联=“all-delete-orphan”的集合不再被拥有的实体实例引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50058553/
我有一个脚本,它充当过滤器,根据用户输入的内容从页面中删除元素,过滤效果很好,当用户输入关键字时,它会添加到列表中, 用户输入我的样子, look, ma, these, are, keywords,
如何通过NHibernate中的代码映射将级联设置为所有删除孤儿? [Flags] public enum Cascade { None = 0, Persist = 2, R
我有一个连接到 mysql 数据库的站点。我有与图片相对应的项目(在数据库中列出)。数据库结构为: Item_num Description Price Available Item
我不确定“孤儿”是否合适,但这是我在这里能想到的最好的。 我希望能够检测到 div 中文本末尾的最后一行中何时有一个或两个额外的词。 请注意:我并不是要通过在最后一行给他们加上另一个词来消除这些“孤儿
所以我试图创建一个孤儿分支。我尝试了几件事情,其中一件 (git checkout -b --orphan newbranch) 设法创建了一个名为“--orphan”的分支;现在它不会让我使用
在我的应用程序中, hibernate 操作是这样的。 应用程序使用请求中的新值更新父实体,并删除所有现有(之前插入的)子实体并插入新的子记录。 我正在使用 hibernate 模式 DELETE_O
我的Docker容器构建的软件产品或多或少需要几个小时。 大多数时候,它运行良好。但是,有时在执行结束时它会变得“孤立”。 “孤立”是指: 1.'docker ps'正确报告容器。 2.“ docke
我在 mygrails 项目中有 2 个类,称为 Profile 和 License 以下是类(class)中重要内容的大纲 class Profile { Set licenceKeys
所以我有一个包含 DateActiveScheduleItem 列表的计划对象。我从数据库获取计划,从列表中删除 DateActiveScheduleItem,并使用 Hibernate CrudRe
我一直在这里关注这个异常,但我找不到解决方案,所以我想粘贴我的代码,以防出现问题。当我尝试查找EvaluationSelectionCriteria 实体时,我收到此异常。 Exception: or
的正确和简单的方法是什么?更新 集合(如果它与 映射)全部删除孤儿通过它的“父”对象? 通过更新,我不仅仅意味着从集合中添加/删除项目,还包括更新项目属性的值(当然对于之前在集合中的那些项目)。 场景
好吧...这是我的问题...我正在从云 REST 查询中提取数千条记录,并在 CRON 期间更新本地表,并使用提取的数据插入和更新现有记录。即 INSERT INTO `property` ($col
我编写了一个使用 opencv 和 videowriter 生成视频输出的函数 我从我的 spyder/ipython ide 中的脚本调用这个函数。在调试过程中,该功能仍然存在错误,有时会在未释放视
我收到一个错误: Don't change the reference to a collection with cascade="all-delete-orphan" 尝试以下操作时: beginT
Project 和 Requirement 实体之间存在一对多关系。 HTML:
我“错误地”将我的 git 存储库 checkout 为孤立分支。有没有办法恢复这个命令?我没有做出任何 promise ,甚至没有以任何其他方式更改 repo 协议(protocol)。 最佳答案
我刚刚发现了 git checkout --orphan,但我不知道如何使用它。它的帮助页面说它创建了一个新的无父分支。 在 master 分支中,我尝试了 git checkout --orphan
我有这些实体 class Foo{ Set bars; } class Bar{ Foo parent; String localIdentifier; } 使用此映射(抱歉,
这可能是什么问题? Caused by: org.hibernate.HibernateException: A collection with cascade="all-delete-orphan"
当使用 cascade="all-delete-orphan"时,NHibernate 正在删除一个非孤立的子行 - 它只是被移动到一个新的父级。 using (var session = sessi
我是一名优秀的程序员,十分优秀!