学习hibernate框架的时候尝试通过级联往数据库中插入数据,报了个空指针异常
异常信息是长这样婶儿的

配置文件是这样婶儿的:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC"-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"><hibernate-mapping package="com.pojo"><class name="Category" table="category_"><id name="id" column="id"><generator class="native"></generator></id><property name="name"></property><set name="products" lazy="false" cascade="all"><key column="cid" not-null="false"></key><one-to-many class="Product" /></set></class></hibernate-mapping>

原代码是这样婶儿的:

package com.pojo;import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.classic.Session;public class Demo13 {public static void main(String[] args) {SessionFactory sf = new Configuration().configure().buildSessionFactory();Session s= sf.openSession();s.beginTransaction();Category c=(Category) s.get(Category.class, 1);Product p1=new Product();p1.setName("pro1");Product p2=new Product();p2.setName("pro2");Product p3=new Product();p3.setName("pro3");c.getProducts().add(p1);c.getProducts().add(p2);c.getProducts().add(p3);s.getTransaction().commit();s.close();sf.close();}
}

百度了几篇文章后没有解决问题,对着教程检查配置文件和原代码也没发现错误
遂尝试手动往数据库插入数据,报错

大概意思就是外键约束失败
将后面的外键1改成2以后插入成功
然后去看外键关联的表,却没找出问题

就很困惑
无意间刷新了一下数据库表,发现id是1的记录消失了

这才想起之前测试过删除级联了,但是表没刷新,所以能看到c1记录还在,其实库里已经没有这条记录了。
哈哈哈,我可真是个老机灵鬼儿

hibernate级联保存报空指针异常相关推荐

  1. hibernate级联保存问题

    异常:org.hibernate.TransientObjectException: object references an unsaved transient instance 解决方法: XML ...

  2. 关于hibernate的关联外键生成以及外键属性列的正确插入即:解决外键插入时,在关联表中除了外键列为空,其它属性均正常级联保存

    关于hibernate的关联外键生成以及外键属性列的正确插入即:解决外键插入时,在关联表中除了外键列为空,其它属性均正常级联保存 其实解决办法十分简单: 首先确保你能够级联保存数据,当然除了关联表的外 ...

  3. Hibernate级联操作 注解

    EJB3 支持的操作类型 /*** Cascade types (can override default EJB3 cascades*/ public enum CascadeType {ALL,P ...

  4. jpa级联添加_请教一个JPA多对多级联保存的问题

    实体类 // 标签类 @Entity public class Label { @Id @Column(name = "lid",unique = true,nullable = ...

  5. hibernate级联操作详解

    2019独角兽企业重金招聘Python工程师标准>>> 级联操作 一.简单的介绍 cascade和inverse (Employee – Department) l Casade用来 ...

  6. jpa和hibernate_JPA和Hibernate级联类型的初学者指南

    jpa和hibernate 介绍 JPA将实体状态转换转换为数据库DML语句. 由于对实体图进行操作很常见,因此JPA允许我们将实体状态更改从父级传播到子级 . 通过CascadeType映射配置此行 ...

  7. JPA和Hibernate级联类型的初学者指南

    介绍 JPA将实体状态转换转换为数据库DML语句. 由于对实体图进行操作很常见,因此JPA允许我们将实体状态更改从父级传播到子级 . 通过CascadeType映射配置此行为. JPA与Hiberna ...

  8. setOnClickListener报空指针异常问题汇总

    很多刚学安卓的朋友在调试程序的时候,都有可能遇到初始化控制之后,设置事件监听器的时候,程序崩掉,报错信息显示空指针异常,因此我结合了一下自己遇到的实际情况,和网上其他人的解决方案对此类问题做了一个汇总 ...

  9. spring boot jpa级联保存

    spring boot jpa级联保存 CascadeType oneToMany关系 one的一方中加 @OneToMany(fetch = FetchType.EAGER, cascade = C ...

最新文章

  1. 强化学习(四) - 蒙特卡洛方法(Monte Carlo Methods)及实例
  2. HTML4 和 HTML5 的10个关键区别
  3. 如何运用下载来的模板
  4. JSPDF运用实例(解决图片跨域问题)
  5. getter方法的作用 vuex_Vuex入门篇——基本使用
  6. 过游戏保护NP或TP的几种方法和思路
  7. IE7pro v0.9.8已经发布(已经有中文包)
  8. 案例:如何评价代码走查的效果?
  9. 怎么用计算机弹植物大战僵尸,[原创] CE基础-自动汇编:植物大战僵尸之子弹回旋...
  10. 集群调度LSF-学习笔记
  11. Android 指纹验证标准API学习
  12. SpringCloud 基础架构搭建
  13. 面试太卷,我选择背八股。。。
  14. deepin win10字体_购机指南 | Deepin 初次体验,国产OS还有很长路要走
  15. 8266+DS3231时钟之显示TM1638的使用【四】下
  16. 利用虚拟机配置SDN网络实验平台(virtual box+Ubuntu+jdk配置+mininet+floodlight/openDaylight)
  17. 麦咖啡 导出安全策略.reg文件。
  18. 如何进行实时频谱分析仪的二次开发——MATLAB、C++、labview开发环境的部署
  19. 使用Falcon对三代测序进行基因组组装
  20. Mac WIn7 QQ聊天记录互导 聊天记录合并

热门文章

  1. 小程序通过广告组件进行赚钱(流量主)--小程序走过的坑(16)(最新版)
  2. 基于FPGA用VerilogHDL设计实现DDS直接频率合成的详细步骤(QuartusII调用ModelSim进行仿真详细步骤)
  3. oracle添加创建视图权限不足,Oracle Scott创建视图权限不足解决办法
  4. select下拉框功能
  5. php 上传图片 裁剪,jQuery+PHP实现上传裁剪图片
  6. element el-table 展开行隐藏小箭头
  7. 《游戏学习》教你上手一个简单的java小游戏《打纸飞机》附源码
  8. 登录服务器 显示关机原因,服务器异常关机原因
  9. Apache POI 密码保护只读word文档在WPS中无效
  10. 中国开源软件推进联盟主席陆首群:开源创新,数字化转型与智能化重构