hibernate中many-to-one关联时出现ObjectNotFoundException异常

采用多对一关联,如果一的那端删除了,多的这端无法感知,虽然数据库中可以通过外键配置将多的一端置空,可是在hibernate里面我暂时不知道如何处理。

目前采用的方式:

1、首先,数据库中需要配置好外键,保证数据库中的数据是正确的。

2、在hibernate的many-to-one元素中增加一个属性:not-found="ignore".

若有更合适的方法,还望告知。

时间: 2024-10-24 13:47:33

hibernate中many-to-one关联时出现ObjectNotFoundException异常的相关文章

hibernate中“deleted object would be re-saved by cascade”异常原理和解决方案

    在hibernate中,经常会出现one to many的关系,如果在不删除one端的前提下要删除many端的某一条或某几条记录,就可能出现上述的异常.     该异常的原理是因为one 端和 many端的联系没有切断,必须要切断他们之间的联系才能进行删除.     方法:     Student s =  studentDao.findById(1);     School.getStudents().remove(s);     s.setSchool(null);     stue

总结Hibernate中的几种关联映射的配置

1.单向多对一(多个A映射到一个B) 把A中的Integer B_id改成 B b,然后在A的映射文件中添加: <many-to-one name="b" class="B的类全名" column="foreign key所在的字段名称" not-null="true"/> 注意:not-null属性比较傻X,意思为"设置关联的字段的值是否可以为空"且默认值是false,意思是不可以为空,一般我

Hibernate中的&quot;Repeated column in mapping for entity&quot;异常

转:http://lijiejava.iteye.com/blog/786535 一对多双向关联(类Item与类Bid):Item类: Java代码 public class Item { private int id;   private String name;   private Set bids = new HashSet();  ???  } Bid类: Java代码 public class Bid { private int id;   private double amount;

解析PHP中intval()等int转换时的意外异常情况

<?php$a = 9.45*100;var_dump($a);var_dump(intval($a));$a = 945*1.00;var_dump($a);var_dump(intval($a));?> 运行结果:float(945) int(944) float(945) int(945) 这个代码虽然把结果都告诉了,但是很多人还是看不懂,这样就解释不了为什么会有意想不到的转型情况发生.网上对这个情况讲的都模棱两可不知所云的.我在这里简单的解释下:9.45这个数字在我们看到的是这样的,但

Hibernate中Session之get和load方法的真正区别

最近在学习SHH框架中的hibernate,对Session的get和load方法,有点混不清楚,不知道区别在哪,或者对它们的区别感触不深.所以百度了一下,结果问题来了.百度的结果和实际测试的结果出入很大.主要是对get方法的说法跟实际运行的结果不一致. 先说一下观点吧: get不支持lazy,load支持lazy: 数据不存在时,get返回null,load则抛出ObjectNotFoundException异常. load方法可以返回实体的代理类实例,而get方法直接读取数据库,所以直接返回

hibernate中 criteria.setProjection(Projections.rowCount()).uniqueResult()为null的Bug

在hibernate中,在查询总数时,会使用如下方法; public Integer getCount(final DetachedCriteria detachedCriteria) {         return (Integer) getHibernateTemplate().execute(new HibernateCallback() { @Override             public Object doInHibernate(Session session)       

Hibernate 中出现 users is not mapped 问题

Hibernate 中出现 users is not mapped 问题: 解答:HQL语句中表名应该是ORM映射的类名,所以应该改成:  (如果是用注解生成实体类,那就是注解的那个类)String sql = "select u.password from User u where u.username='" +user.getUsername()+ "'"; User.hbm.xml:<class name="com.lian.bean.User

hibernate中多对多关联

hibernate中多对多关联 “计应134(实验班) 凌豪” 在关系数据库中有一种常见的关系即多对多关系,例如课程和学生的关系,一个学生可以选择多门课程,同时一门课程也可以被多个学生选择, 因此课程与学生的关系就可以看成是多对多的关系,其中课程表的结构如下图所示: 学生表user 在关系数据库中不能直接建立多对多关联,要想建立这种多对多的关系只能借助第三张中间表, 因此为了建立这种多对多的关系我们需要建立第三张表User_course 为了实现表的多对多关联,需要在两个表的Hibernate配

Atitit.Hibernate中Criteria 使用总结and 关联查询 and 按照子对象查询 o9o

Atitit.Hibernate中Criteria 使用总结and 关联查询 and 按照子对象查询 o9o 1. Criteria,,Criterion ,, 1 <2. 主要的对象黑头配置磊个关联,三 1 3. Criteria 黑头配置关联查询了... 2 4. Ati Meata 配置关联 @CriteriaRelt 2 5. 关联createCriteria() 3 6. Criteria的使用outline 4 7. 参考:: 5 1. Criteria,,Criterion ,,