- 22
- 0
[实际现象]
长期使用MyBatis, 利用Mybatis的工具(Mybatis Generator/ 通用Mapper), 可以有类似 insertSelective(E) 之类的方法.
其实就是映射如下SQL写法( 有很多字段有默认值, insert时只需要部分值就可以了)
CREATE TABLE `TABLENAME` (
`id` bigint UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'PRIMARY KEY' ,
name VARCHAR(1000) NOT NULL ,
`deleted` tinyint UNSIGNED NOT NULL DEFAULT 0 COMMENT '是否已经被删除' ,
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '插入时间' ,
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '被更新时间' ,
PRIMARY KEY (`id`),
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='TABLENAME';
插入数据(希望spring data 能映射到这个)
INSERT INTO tablename (name) VALUES('NAME1');
但是spring data 在调用 insert(E)时, 需要将E的所有非NULL属性全部赋值(比如这里的 create_time, 但是其实我并不care, 因为数据库已经处理了)
[预期现象 & 我要做什么]
- 希望spring data , 在insert(E)数据时, 能够只提供部分值.( 具体来说, 就是有mybatis 中的那种insertSelective 方法 )
- insert时,生成的sql 语言, 只处理我的实体中的 非 null 值, 不要去处理 null 值
[代码]
SQL
如上
Entity
public class Person {
private Long id;
private String name;
private Boolean deleted;
private Date createTime;
private Date updateTime;
}
Repository
public interface IPersonRepository extends JpaRepository<Person>{
}
Service
public class PersonService {
public void insert() {
final Person p = new Person();
p.setName("name1");
this.personRepository.insert(p); // 会报错
}
}
[上下文环境(重要语境)] && [场景]
- mysql 5.7 服务端
- spring boot 1.5
- spring data jpa
- @Repository
[尝试解决 & 我的推测]
- google 搜索
加入
@Column(insertable=false)
private Date createTime;
但是, 这显然不是我所要的, 大家可以实际动手试试 0
打赏
收藏
点击回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
