在实体对象上使用Builder模式应该注意
来源:互联网 发布:nginx error log 级别 编辑:程序博客网 时间:2024/06/05 02:33
上篇文章说了一下Builder模式的优点儿,以及idea Builder插件的安装。亲身经历的坑,项目是spring+mybatis,同事在自动生成的实体类中使用了Builder模式,细心观察了一下,生成了一个私有带有参数的构造方法,并且日志报出来的错误更是可笑
No constructor found in xxx.entity.CardOrder matching [java.lang.Long, java.lang.Integer, java.lang.String, java.lang.String, java.sql.Timestamp, java.sql.Timestamp]
首先 mybatisd 提示没有一个构造器来匹配数据,首先想到的不是构造函数的问题,后面参数除了第一个其他的都能对应上类型,就一直开始找为什么会有一个Long类型的数据,实体和数据库明明都是int 类型,首先把重点放在了xml映射上,慢慢的把注意力放到了实体上,查了半天发现 Builder 生成的代码有一个私有的构造方法,
private CardOrder(Builder builder) { setTypeId(builder.typeId); setPhone(builder.phone); setStatus(builder.status); }
添加了一个 public 的无参数的构造函数,完美解决,
注意使用
在有被映射实体的类中记得加上一个公有的构造函数;
Builder 缺点:
当然,上节你也看到了,在使用构建器的时候,必须利用另外一个类来实例化另外一个类,这样子会使创建的时候创建更多的对象。这样子会损耗一定的性能...不过带来的好处是非常明显的。因为使用builder模式,每次设置属性的时候,都是具名的方法操作,是开发人员更容易使用,并且不需要给宿主类增加相应的setXxx方法,这样子,这个宿主类在创建之后是不可以修改的,在一些安全模式比较高的程序中,这点也是很重要的。
- 在实体对象上使用Builder模式应该注意
- 使用 JsonConfig 排除 实体对象 建立在一对多的关联关系上 jsonConfig.setExcludes
- Builder模式创建对象
- 在opencms中使用jsp应该注意的
- 在开发WML时使用标签应该注意的问题
- 在VC中使用资源文件应该注意的问题
- 在springmvc中使用@PathVariable时,应该注意点什么?
- Builder模式中,为什么必须在对象域而不是builder域中检查参数?
- 结构在使用上的注意点
- 创建对象之Builder模式
- 在VMware上部署Openstack注意混杂模式
- 使用Jquery应该注意的
- cvs服务器在redhat 9.0上的建立以及应该注意的问题
- 在电脑上制作sqlite数据库时应该注意的问题
- 在电脑上制作sqlite数据库时应该注意的问题
- 在美国godaddy虚拟主机上用php发邮件应该注意的问题
- 在64位平台上的Lucene,应该使用MMapDirectory
- 在重构的过程中,什么情况下应该使用设计模式?应该用哪种模式?
- 关于SVN 目录结构
- RestTemplate解决乱码问题
- 银联支付sdk乱塞全局加解密算法,导致的支付宝加解密类乱码的问题
- Idea 类builder模式插件安装方法
- 轻松理解MYSQL MVCC 实现机制
- 在实体对象上使用Builder模式应该注意
- java多线程实现mq消息处理超时监控
- 【备忘】大数据开发之hadoop工程师成长之路零基础到精通下载
- spring Boot 微服务监控(Spring boot admin )
- Spring 定时任务的 执行时间设置规则
- [置顶] 数据连接池默认配置带来的坑testOnBorrow=false,cloes_wait 终于解决了
- Java——数组的基本操作
- 后缀数组基数排序——bzoj3172: [Tjoi2013]单词
- Git & Gitlab 使用指南