相信不少兄弟在写一个Pojo的时候,都会先写上一些属性(如:private String name;),再利用IDE(Integrated development envoriement,集成开发工具)生成一组组默认的setters和getters,然后完事大吉!诚然,这对于一些简单的Pojo也许就够了;但是,对于一些复杂的Pojo,尤其是有众多关联关系的Pojo,我们最好在其setters和getters里完成其属性变量(实例变量)的初始化!
我们举一个简单的例子,假设有两个Pojo,一个是User,一个是City,用户注册时city是选填项,即User中有一个city属性(private City city),映射文件如下:
<class name="User" table="Table_User">
<id name="id" type="integer" column="id">
<generator class="native"/>
</id>
<property name="name" column="user_name" type="String"/>
<property name="password" column="password" type="String"/>
<many-to-one name="city" column="city_id" class="com.davy.test.City" cascade="none"/>
</class>
这样对User和City的关系就清楚了,这样,我们在spring+hibernate的环境下,saveOrUpdate User这个对象时,如果用户没有填选city这一项,则会发生错误:saveOrUpdate异常,object references a transit object com.davy.test.City,please save the transit object first!这是说保存User时发现User关联着一个临时的City对象(id为0,因为是spring注入进来的,而且用户没选城市),必须先保存city!
个人认为比较好的做法是在User类里对city的set方法进行处理,如下:
public void setCity(City city)
{
if(city != null && city.getId() > 0)
{
this.city = city;
}else
{
this.city = null;
}
}
这样再保存User对象就一切正常了!以上例子只为说明道理而刻意简化了,对于复杂问题只是set或get方法复杂点罢了,依次类推!
分享到:
相关推荐
-- 保证POJO中标注@Required的属性被注入 --> <!-- 使用 annotation 自动注册bean,并检查@Controller, @Service, @Repository注解已被注入,也可以分开注释,或者固定某个目录下 --> <context:component-...
SSH的整合问题集中处理 <!-- 事务配置 --> <!-- JTA环境的事务配置 WebLogicJtaTransactionManager"/> ... <!-- 使用annotation定义事务 --> ...-- 保证POJO中标注@Required的属性被注入 --> </beans>
SSM笔记-POJO,测试POJO,SpringMVC会根据请求参数名和POJO类的属性名自动匹配为对应对象填充值
--扫描pojo包,给包下所有pojo对象起别名--> <!--扫描接口包路径,生成包下所有接口的代理对象,并且放入spring容器中--> <!--dao层配置文件结束--> <!--service层配置文件开始--> <!--组件扫描...
Java的几种对象(PO-VO-DAO-BO-POJO)解释
maven-guvnor-install-pojo-plugin-1.1.0.17-sources.jar
maven-guvnor-install-pojo-plugin-1.1.0.16-sources.jar
maven-guvnor-install-pojo-plugin-1.1.0.15-sources.jar
maven-guvnor-install-pojo-plugin-1.1.0.14-sources.jar
maven-guvnor-install-pojo-plugin-1.1.0.13-sources.jar
maven-guvnor-install-pojo-plugin-1.1.0.12-sources.jar
maven-guvnor-install-pojo-plugin-1.1.0.11-sources.jar
Generate POJO-JPA-Repository-Service
Generate POJO-JPA-Swagger-DTO
利用Mybatis逆向工程来生成pojo,dao和mapper。然后将pojo实体类和dao拷贝到工程当中。这样可以快速地实现数据库的开发
jar包,亲测可用
POJO In action 代码 POJO In action 代码 POJO In action 代码
pojo-updater-compile Android apt plugin for pojo-updater License Copyright 2015 杭州树洞网络科技有限公司 Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file ...
POJOGenerator(POJO代码生成器 v1.3.3) 本POJO代码生成器采用Java的Swing技术编码实现,是绿色免费工具,可以自由传播。 由于本工具的内部实现较烂,所以还请反编译高手手下留情,让我留几分颜面。^_^ 由于本人...
写好配置后,连接数据库,读取所有表,自动生成pojo和mybatis xml增删改查字段信息。剩下的工作就是复制-粘贴-修改。生成的pojo里面只有成员变量没有set/get方法,因为生成代码麻烦但是在eclipse里面添加这个很简单...