做一对多遇到的几个问题(单向)

java 代码
  1. public class User  implements java.io.Serializable {   
  2.   
  3.   
  4.     // Fields       
  5.   
  6.      private long id;   
  7.      private String name;   
  8.      private Set emails = new HashSet(0);  
刚开始的时候只是写private Set emails,而没有将new HashSet(0)写出来.
在测试的时候,报空指针错误.
java 代码
  1. public void testCreate(){   
  2.         Email email1 = new Email();   
  3.         email1.setEmail("lsss@163.com");   
  4.         System.out.println(email1.getEmail());   
  5.            
  6.         Email email2 = new Email();   
  7.         email2.setEmail("liddddyang@163.com");   
  8.            
  9.         User user = new User();   
  10.         user.setName("lin");   
  11.         //下面这句话报空指针的错误   
  12.         System.out.println(user.getEmails());   
  13.         user.getEmails().add(email1);   
  14.         user.getEmails().add(email2);   
  15.            
  16.         Session session = factory.openSession();   
  17.         Transaction tr = session.beginTransaction();   
  18.         session.save(user);   
  19.         tr.commit();   
  20.         session.close();   
  21.     }  
java 代码
  1.   
  2. public class Email  implements java.io.Serializable {   
  3.   
  4.   
  5.     // Fields       
  6.   
  7.      private long id;   
  8.      private String email;  

配置映射文件的时候,多的一方没什么

xml 代码
  1. <hibernate-mapping>  
  2.     <class name="org.tie.Email" table="email" catalog="tie">  
  3.         <id name="id" type="long">  
  4.             <column name="id" />  
  5.             <generator class="native" />  
  6.         </id>  
  7.         <property name="email" type="string">  
  8.             <column name="email" length="45" not-null="true" />  
  9.         </property>  
  10.     </class>  
  11. </hibernate-mapping>  
xml 代码
  1. <hibernate-mapping>  
  2.     <class name="org.tie.User" table="user" catalog="tie">  
  3.         <id name="id" type="long">  
  4.             <column name="id" />  
  5.             <generator class="native" />  
  6.         </id>  
  7.         <property name="name" type="string">  
  8.             <column name="name" length="45" not-null="true" />  
  9.         </property>  
  10.         <set name="emails" table="email" cascade="all">  
  11.             <key column="uid"></key>  
  12.             <one-to-many class="org.tie.Email"/>  
  13.         </set>  
  14.     </class>  
  15. </hibernate-mapping>  

一的一放用到Set,但是这里和值类型的Set还是不一样的.

值类型里面的set用的是element而这里是用的one-to-many,

不同于值类型的Set映射.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值