User.javapublic class User {
private int uid;
private String uname;
private String upwd;
private List<Address> addressList=new ArrayList<Address>();
//..........get and set methodAddress.javapublic class Address {
private int id;
private String address;
private String code;
private User user;
//----------------
User.xml<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN"
"http://www.ibatis.com/dtd/sql-map-2.dtd">
<sqlMap namespace="User">
<resultMap id="result" class="com.tq365.vo.User">
<result property="uid" column="uid"></result>
<result property="uname" column="uname"></result>
<result property="upwd" column="upwd"></result>
<result property="addressList" column="uid" select="address.findByUid"></result>
</resultMap>
<resultMap id="address_result" class="com.tq365.vo.Address">
<result property="id" column="id"></result>
<result property="address" column="address"></result>
<result property="code" column="code"></result>
<result property="user" column="uid" select="findUserByID"></result>
</resultMap>
<!--根据ID查询-->
<select id="findUserByID" parameterClass="int" resultClass="com.tq365.vo.User">
select * from t_user where uid=#uid#
</select>
<!-- 关联查询 -->
<select id="address.findByUid" resultMap="address_result" parameterClass="int">
select * from t_address where uid=#uid#
</select>
<!-- Address部分 -->
<!--根据ID查询-->
<select id="findAddressByID" parameterClass="int" resultMap="address_result">
select * from t_address where id=#id#
</select>
</sqlMap>
SqlMapUtil.javapublic class SqlMapUtil {
private SqlMapUtil(){}
private static SqlMapClient sqlMapClient=null;
public static SqlMapClient getSqlMapClient(){
//ibatis配置文件的路径
String resource="sqlMap/sql-map-config.xml";
try {
//读取配置文件
Reader reader=Resources.getResourceAsReader(resource);
//创建SqlMapClient对象
sqlMapClient=SqlMapClientBuilder.buildSqlMapClient(reader);
} catch (IOException e) {
e.printStackTrace();
}
return sqlMapClient;
}
}测试类
OneToManyTest.javapublic class OneToManyTest { public static void main(String[] args) {
UserDao dao=new UserDao();
User user=dao.getUserByUid(3);
//从User对象中获得不了List列表???
//System.out.println(user.getAddressList().size());
//从地址中可以查出User对象
List<Address> addressList=dao.getAddresssByUid(3);
for(int i=0;i<addressList.size();i++){
System.out.println("地址:"+addressList.get(i).getAddress());
System.out.println("姓名:"+addressList.get(i).getUser().getUname());
}
}
}从地址中可以获得用户信息,而从用户中获得不了地址列表,求前辈们看看下,是哪错了
private int uid;
private String uname;
private String upwd;
private List<Address> addressList=new ArrayList<Address>();
//..........get and set methodAddress.javapublic class Address {
private int id;
private String address;
private String code;
private User user;
//----------------
User.xml<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN"
"http://www.ibatis.com/dtd/sql-map-2.dtd">
<sqlMap namespace="User">
<resultMap id="result" class="com.tq365.vo.User">
<result property="uid" column="uid"></result>
<result property="uname" column="uname"></result>
<result property="upwd" column="upwd"></result>
<result property="addressList" column="uid" select="address.findByUid"></result>
</resultMap>
<resultMap id="address_result" class="com.tq365.vo.Address">
<result property="id" column="id"></result>
<result property="address" column="address"></result>
<result property="code" column="code"></result>
<result property="user" column="uid" select="findUserByID"></result>
</resultMap>
<!--根据ID查询-->
<select id="findUserByID" parameterClass="int" resultClass="com.tq365.vo.User">
select * from t_user where uid=#uid#
</select>
<!-- 关联查询 -->
<select id="address.findByUid" resultMap="address_result" parameterClass="int">
select * from t_address where uid=#uid#
</select>
<!-- Address部分 -->
<!--根据ID查询-->
<select id="findAddressByID" parameterClass="int" resultMap="address_result">
select * from t_address where id=#id#
</select>
</sqlMap>
SqlMapUtil.javapublic class SqlMapUtil {
private SqlMapUtil(){}
private static SqlMapClient sqlMapClient=null;
public static SqlMapClient getSqlMapClient(){
//ibatis配置文件的路径
String resource="sqlMap/sql-map-config.xml";
try {
//读取配置文件
Reader reader=Resources.getResourceAsReader(resource);
//创建SqlMapClient对象
sqlMapClient=SqlMapClientBuilder.buildSqlMapClient(reader);
} catch (IOException e) {
e.printStackTrace();
}
return sqlMapClient;
}
}测试类
OneToManyTest.javapublic class OneToManyTest { public static void main(String[] args) {
UserDao dao=new UserDao();
User user=dao.getUserByUid(3);
//从User对象中获得不了List列表???
//System.out.println(user.getAddressList().size());
//从地址中可以查出User对象
List<Address> addressList=dao.getAddresssByUid(3);
for(int i=0;i<addressList.size();i++){
System.out.println("地址:"+addressList.get(i).getAddress());
System.out.println("姓名:"+addressList.get(i).getUser().getUname());
}
}
}从地址中可以获得用户信息,而从用户中获得不了地址列表,求前辈们看看下,是哪错了
解决方案 »
- 用axis2 和 hibernate 开Webservice出现 org.apache.axis2.AxisFault
- document.getElementsByName("type1").value 得不到值?
- 创建表问题
- 为何在应用正式发布的时候不选tomcat
- Hibernate创建出错,请高手指教
- 为什么在Eclipse里jsp网页可以正常运行,但是竟然打不开http://localhost:8080。这是为什么?
- 先安装了JDK1.5和Tomcat5.5,然后又安装了JbuilderX,tomcat就不能启动了
- 点击后退按钮页面过期,如何让他不显示过期(急急急~~~)
- 跪求在 J2EE 1.3 中如何配置 Cloudscape 数据库的可视化工具 Cloudview 的方法
- socket
- 关于 js的调试
- lucene 在某一时间段内做多条件查询
把.去掉试试
不过这样可能会导致死循环查询,建议再单独写个查询