hibernateTemplate多表外键存储

问题描述

DeptInfodept=(DeptInfo)hibernateTemplate.find("fromDeptInfowhereid=?",1).get(0);System.out.println(dept.getDeptName());MajorInfomajorInfo=newMajorInfo();majorInfo.setDeptId(dept);majorInfo.setMajorName("信息管理技术");majorInfo.setSortInfo("1");hibernateTemplate.save(majorInfo);hibernateTemplate.saveOrUpdate(majorInfo);/*Sessionsession=HibernateUtils.getSession();session.beginTransaction().begin();DeptInfodept=(DeptInfo)hibernateTemplate.find("fromDeptInfowhereid=?",2).get(0);System.out.println(dept.getDeptName());MajorInfomajorInfo=newMajorInfo();majorInfo.setDeptId(dept);majorInfo.setMajorName("网络技术");majorInfo.setSortInfo("1");session.save(majorInfo);session.getTransaction().commit();*/注释部分是用普通Hibernate实现的,可以实现。上面的通过hibernateTemplate就无法保存,提示id冲突。。

解决方案

解决方案二:
id冲突?你换一个ID试试呢没看出别的问题
解决方案三:
hibernateTemplate.save(majorInfo);hibernateTemplate.saveOrUpdate(majorInfo);为什么要save了,又saveorupdate
解决方案四:
hibernateTemplate.save(majorInfo);hibernateTemplate.saveOrUpdate(majorInfo);有下面的就不要上面的了.下面的方法的含义你应该搞搞清楚.数据库中有了,就更新,没有就插入条新的
解决方案五:
引用1楼lu76689614的回复:

id冲突?你换一个ID试试呢没看出别的问题

楼主去了sava或者换了id试试
解决方案六:
引用2楼shizhijie737的回复:

hibernateTemplate.save(majorInfo);hibernateTemplate.saveOrUpdate(majorInfo);为什么要save了,又saveorupdate

楼主换个id或者去掉save方法试试,应该就没问题了!
解决方案七:
观望中
解决方案八:
楼主去掉save方法就行了!!!

时间: 2024-12-08 20:55:10

hibernateTemplate多表外键存储的相关文章

Oracle系统表外键的更名_oracle

正在看的ORACLE教程是:Oracle系统表外键的更名. Oracle中表的外键是保证系统参照完整性的手段,而参照完整性是指分布在两个表中的列所满足的具有主从性质的约束关系.外键涉及到两个表,其中一个称之为父项表,另一个称之为子项表.  父项表(parent table)是参照约束的基础,即通过检查这张表的有效数据情况来判断约束是否成立,它是参照约束的条件,影响约束,而不受约束的任何影响.  子项表(child table)是参照约束的对象,当其发生变化,如有新数据输入时,通过比较父项表中的有

如何根据表外键查询表的内容

问题描述 我有一个数据表TColumn的主键为FColumnid,还有一个表TBook的主键为TBookid,外键为FColumnid.请问怎样根据FColumnid查询到TBook中的信息呢? 解决方案 解决方案二:select*fromTBookinnerjoinTColumnonTColumn.FColumnid=TBook.FColumnid解决方案三:selectTbook.id1,Tbook.id2fromTbook,TColumnwhereTbook.FColumnid=TColu

WPF SQL中用逻辑外键存储性别,再读取赋值给COMBOBOX时,设置COMBOBOX默认值的问题

问题描述 学员表中的性别存储在另一张表里,学员表中的性别字段存储的是GUID类型的,是性别表中的GUID字段.XAML:<ComboBoxName="cbo_StuGender"SelectedValue="{BindingStuGenderId}"DisplayMemberPath="CategoryName"SelectedValuePath="CategoryId"Width="116"Grid

数据库-Mysql创建表的时候创建不了外键

问题描述 Mysql创建表的时候创建不了外键 create table orderdetail ( id int UNSIGNED AUTO_INCREMENT PRIMARY KEY, oid varchar(20) , fname varchar(20) , fprice decimal(5,2), num SMALLINT UNSIGNED not null, subtotals decimal(5,2) not null, CONSTRAINT fk_orderdetail_oid FO

Oracle批量执行sql语句之禁用所有表的外键_oracle

在转移数据库,进行数据导入的时候,遇到一件麻烦事,就是表间外键约束的存在,导致insert频频报错,批量执行sql语句又是顺序执行,没办法我只好手动输入. 然后输入到一半灵光一闪,为什么不先把外键约束全部禁用先呢? 于是我百度到以下资料: oracle 删除(所有)约束 禁用(所有)约束 启用(所有)约束 执行以下sql生成的语句即可 1删除所有外键约束 select 'alter table '||table_name||' drop constraint '||constraint_name

Navicatfor Mysql中添加外键方法

环境:NavicatforMysql 8.2 + MySQL Sever 5.1 问题:NavicatforMysql中添加外键 解 决: 方法一: 使用SQL语句创建外键: alter table 外键表 add constraint 约束 名 foreign key(栏位名) references 参照表(外键栏位名) on delete restrict/set null/cascade on update restrict/set null/ cascade; 不指定外键的名称,mysq

关于oracle外键引用与goldengate

  一.准备知识 约束放置在表中,有以下五种约束: NOT NULL 非空约束C 指定的列不允许为空值 UNIQUE 唯一约束U 指定的列中没有重复值,或该表中每一个值或者每一组值都将是唯一的 PRIMARY KEY 主键约束P 唯一的标识出表的每一行,且不允许空值值,一个表只能有一个主键约束 FOREIGN KEY 外键约束R 一个表中的列引用了其它表中的列,使得存在依赖关系,可以指向引用自身的列 CHECK 条件约束C 指定该列是否满足某个条件 约束命名规则 如果不指定约束名Oracle s

聊聊Oracle外键约束的几个操作选项

关系型数据库是以数据表和关系作为两大对象基础.数据表是以二维关系将数据组织在DBMS中,而关系建立数据表之间的关联,搭建现实对象模型.主外键是任何数据库系统都需存在的约束对象,从对象模型中的业务逻辑加以抽象,作为物理设计的一个部分在数据库中加以实现. Oracle外键是维护参照完整性的重要手段,大多数情况下的外键都是紧密关联关系.外键约束的作用,是保证字表某个字段取值全都与另一个数据表主键字段相对应.也就是说,只要外键约束存在并有效,就不允许无参照取值出现在字表列中.具体在Oracle数据库中,

MySQL删除外键问题小结_Mysql

MySQL:MySQL不能删除外键,抱错Error on rename of ./ruler/test2child to ./ruler/#sql2-298-92 (errno: 152) 曾经这是MySQL的一个bug,但是现在只是MySQL的一个不友好的地方. 例子如下: mysql> ALTER TABLE ruler.test2child DROP FOREIGN KEY test; ERROR 1025 : Error on rename of ''./ruler/test2child