我正在开发 spring hibernate 应用程序并尝试使用基于非 id 多对一关系的列从表中删除。实体类是:
@Entity
public class Day {
@id(name = "DAY_ID")
dayId;
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinColumn(name = "DAY_ID")
List<Holiday> holidayList;
...
}
@Entity
public class Holiday {
@id(name="HOLIDAY_ID")
holidayId;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "DAY_ID")
Day day;
...
}
我正在尝试使用 hql 从假日表中删除一行。
String query = "DELETE FROM Holiday WHERE day.dayId = " + dayObject.getdayId();
Query holidayDeleteQuery = getSession().createQuery(query);
holidayDeleteQuery.executeUpdate();
在控制台中,我得到了正确的删除查询,但在检查数据库时发现该行仍然存在,但现在假日表中的 DAY_ID 列为空。我无法弄清楚为什么会这样?
编辑:帮助!!!我的主要问题是为什么 DAY_ID 列更改为空值?