spring mvc 外键允许Null

spring mvc 定义模型外键时允许为Null

新手记录,习惯定义模型时将外键的数据类型为long,基本类型。

这样生成的外键是不允许为Null,但是可以通过设置字段的Column注解,使之允许为Null。

矛盾又来了,如果这样的话,在insert数据时基本类型long是默认值为0,还是会提示外键约束的异常提示。

最后无奈将外键定义为Long类型,即非基本类型,允许为Null,也不需要Column注解来让其为Null。在插入数据时由于其默认值为null,外键也即为null。

但是不知道这样定义有什么后果。

时间: 2024-11-14 22:45:45

spring mvc 外键允许Null的相关文章

(MYSQL)给数据库设置外键

设置外键有两种方式,一种是在创建表的时候关联外键,另一种是给已经存在的表添加外键.具体操作如下: 1.在创建表时的操作 班级表(主表): create table tb1( id INT PRIMARY KEY AUTO_INCREMENT, classname VARCHAR(20) NOT NULL ); 用户表(子表): create table tb2( id INT PRIMARY KEY AUTO_INCREMENT, username VARCHAR(20) NOT NULL, c

外键约束的作用

外键是该表是另一个表之间联接的字段 外键必须为另一个表中的主键 外键的用途是确保数据的完整性.它通常包括以下几种: 1 实体完整性,确保每个实体是唯一的(通过主键来实施) 2 域完整性,确保属性值只从一套特定可选的集合里选择 3 关联完整性,确保每个外键或是NULL(如果允许的话)或含有与相关主键值相配的值 FOREIGN KEY 约束的主要目的是控制存储在外键表中的数据,但它还可以控制对主键表中数据的修改.例如,如果在 publishers 表中删除一个出版商,而这个出版商的 ID 在 tit

数据库--外键约束

1.约束 约束保证了数据的完整性和一致性. 约束分为表级约束和列级约束,针对一个字段的约束称为列级约束,针对两个及两个以上的约束称为表级约束. 3.约束类型包括 NOT NULL(非空约束) PRIMARY KEY(主键约束) UNIQUE KEY(唯一约束) DEFAULT KEY(默认约束) FOREIGN KEY(外键约束) 首先我来介绍一下外键约束的要求 1.父表和子表必须使用相同的存储引擎(必须使用ZNNODB).而且禁止使用临时表. 2.数据表和参照表必须具有相似的数据类型.其中数字

mysql foreign key(外键) 说明与实例

一,什么是foreign key,及其完整性 个人觉得,foreign key就是表与表之间的某种约定的关系,由于这种关系的存在,我们能够让表与表之间的数据,更加的完整,关连性更强.关于完整性,关连性我举个例子,大家就会明白了. 有二张表,一张是用户表,一张是订单表: 1,如果我删除了用户表里的用户,那么订单表里面根这个用户有关的数据,就成了无头数据了,不完整了. 2,如果我在订单表里面,随便插入了一条数据,这个订单在用户表里面,没有与之对应的用户.这样数据也不完整了. 如果有外键的话,就方便多

MySQL学习10:外键约束下的更新操作

上一篇只是讲述了外键约束的要求,并没有讲述外键约束的参照操作.这一次我来看看外键约束下的更新操作. 一外键约束的参照操作 我们进行外键约束的创建以后,在更新表的时候,子表是否也进行相应的更新.这是我们创建外键约束最大的好 处.有以下几种: 1)CASCADE:从父表删除或更新且自动删除或更新子表中匹配的行. 2)SET NULL:从父表删除或更新行,并设置子表中的外键列为NULL.如果使用该选项,必须保证子表列没有指 定NOT NULL. 3)RESTRICT:拒绝对父表的删除或更新操作. 4)

MySQL 之 第二章: 库与表的基本操作; 数据类型; 完整性约束; 外键;

库与表的基本操作 数据类型 完整性约束 外键 库与表的基本操作 库的增删改查: 查看系统库语句: show databases; information_schema: 虚拟库,不占用磁盘空间,存储的是数据库启动后的一些参数,如用户表信息.列信息.权限信息.字符信息等performance_schema: MySQL 5.5开始新增一个数据库:主要用于收集数据库服务器性能参数,记录处理查询请求时发生的各种事件.锁等现象mysql: 授权库,主要存储系统用户的权限信息 sys: 创建数据库语法:

无法检索记录使用jpa库外键时为空

我面临一个问题,当我搜索一个实体及其与外键记录. 根据业务逻辑,我需要搜索实体--LookupRequest表帐户(与非空帐户id)和外键="回调"(null). 请注意账户id并不是唯一的(为简单起见我删除表中的其他参数,使其短). 一旦我筛选记录,我必须更新LookupRequest. 回调foreignkey条目. 我无法外键为空时检索记录. import javax.persistence.*; @Entitypublic class LookupRequest { @Id@G

MySQL的外键约束:Cascade/Restrict/No action/SET NULL

转自:http://blog.csdn.net/cnjsnt_s/article/details/5548280 具体使用时需要参考:http://blog.csdn.net/codeforme/article/details/5539454 (注:没看很明白,囧.) MySQL有两种常用的引擎类型:MyISAM和InnoDB.目前只有InnoDB引擎类型支持外键约束.InnoDB中外键约束定义的语法如下: [CONSTRAINT [symbol]] FOREIGN KEY [index_nam

MySQL外键设置中的的 Cascade、NO ACTION、Restrict、SET NULL

MySQL外键设置中的的属性含义: cascade方式 在父表上update/delete记录时,同步update/delete掉子表的匹配记录 set null方式 在父表上update/delete记录时,将子表上匹配记录的列设为null 要注意子表的外键列不能为not null No action方式 如果子表中有匹配的记录,则不允许对父表对应候选键进行update/delete操作 Restrict方式 同no action, 都是立即检查外键约束 Set default方式 父表有变更