三、实体层设计----细粒度划分--Hibernate-- 组件映射
java 代码
1. Person.java
2.
3. /*
4. * Hibernate - 组件(Component)映射
5. * 创建日期 2005-4-10
6. * @author javamxj(分享java快乐)
7. * @link Blog: htpp://javamxj.mblogger.cn
8. * htpp://blog.csdn.net/javamxj/
9. */
10. package javamxj.hibernate.component;
11. /**
12. * @hibernate.class
13. */
14. public class Person {
15. private Long id;
16. private String username;
17. private Address address;
18. /**
19. * @hibernate.id
20. * generator-class="hilo"
21. * unsaved-value="null"
22. */
23. public Long getId() {return id;}
24. public void setId(Long id) {this.id = id;}
25. /**
26. * @hibernate.property
27. * length="15"
28. * unique="true"
29. * not-null="true"
30. */
31. public String getUsername() {return username;}
32. public void setUsername(String username) {this.username = username;}
33. /**
34. * @hibernate.component
35. */
36. public Address getAddress() {return address;}
37. public void setAddress(Address address) {this.address = address;}
38. }
39.
· Person类调用了Address类,注意在“getAddress()”方法上的“ @hibernate.component”标记。
· Address类只含有一些“ @hibernate.property”标记,没有将其独立映射为一个表。
java 代码
1. Address.java
2.
3. package javamxj.hibernate.component;
4. public class Address {
5. private String country;
6. private String city;
7. private String street;
8. private String zipCode;
9. public Address() {}
10. public Address(String country, String city, String street, String zipcode) {
11. super();
12. this.country = country;
13. this.city = city;
14. this.street = street;
15. this.zipCode = zipcode;
16. }
17. /**
18. * @hibernate.property
19. * length = "12"
20. */
21. public String getCity() {return city;}
22. public void setCity(String city) {this.city = city;}
23. /**
24. * @hibernate.property
25. * length = "12"
26. */
27. public String getCountry() {return country;}
28. public void setCountry(String country) {this.country = country;}
29. /**
30. * @hibernate.property
31. * length = "6"
32. */
33. public String getZipCode() {return zipCode;}
34. public void setZipCode(String number) {this.zipCode = number;}
35. /**
36. * @hibernate.property
37. * length = "12"
38. */
39. public String getStreet() {return street;}
40. public void setStreet(String street) {this.street = street;}
41. public String toString(){
42. return ("居住在"+ country + city+"市"+ street+"区"
43. + "\n\t邮政编码: "+ zipCode);
44. }
45. }
46.
xml 代码
1. Person.hbm.xml
2.
3. <?xml version="1.0" encoding="GBK"?>
4. <!DOCTYPE hibernate-mapping PUBLIC
5. "-//Hibernate/Hibernate Mapping DTD 2.0//EN"
6. "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
7. <hibernate-mapping
8. >
9. <class
10. name="javamxj.hibernate.component.Person"
11. dynamic-update="false"
12. dynamic-insert="false"
分享到:
相关推荐
<br>ext学习笔记一<br>小试iBatis<br>RIA(Rich Internet Application)的现状和未来<br>Java应用中域名解析不过期的解决方法<br>Java编程那些事儿45—数组使用示例1<br>一步步熟悉OFBiz<br>用Java做客户端调用.NET写...
- **一级缓存与二级缓存**:Hibernate的一级缓存是Session级别的,二级缓存是SessionFactory级别的,合理利用能提高性能。 - **懒加载(Lazy Loading)**:Hibernate支持关联对象的延迟加载,避免一次性加载大量...
在了解和学习Spring笔记中的Hibernate知识点时,我们能掌握如何利用Hibernate框架简化数据库操作,并深入理解其底层实现原理。这些知识点能帮助开发者高效地进行Java持久层的开发,提高代码质量和开发效率。
它引入了新的标签,如<section>、<article>和<footer>,使得页面结构更加清晰,增强了语义化。同时,HTML5还提供了离线存储、拖放功能、媒体元素等特性,使得后台管理界面更加互动和便捷。 二、Java:作为服务器端...
本笔记旨在帮助初学者从零基础逐步提升至J2SE(Java Standard Edition)和J2EE(Java Enterprise Edition)的高手水平。J2SE是Java的核心部分,提供了用于桌面应用程序和服务器端开发的基础框架;而J2EE则是Java在...
视频教程提供了直观的学习方式,笔记能够帮助学习者梳理和复习重点知识,源码的提供则可以让学习者直接看到代码是如何被编写的,从而更好地理解编程概念。通过这样的学习材料,配合大量的实践和项目练习,学习者能够...
李兴华老师的笔记涵盖了Servlet、JSP、JSTL、EL表达式等Web开发基础,深入讲解了MVC设计模式以及Struts、Spring、Hibernate等主流框架的使用。此外,他还对EJB(Enterprise JavaBeans)进行了介绍,让读者了解企业级...
标题中的“extjs菜鸟做的动态accordion加动态tree”意味着这个项目是初学者使用EXTJS库构建的一个功能,其中包括了动态的Accordion组件和动态的Tree组件。EXTJS是一个强大的JavaScript前端框架,它提供了丰富的用户...
4. **数据访问**:Spring 3.2.4加强了对JDBC、Hibernate、MyBatis等数据访问技术的支持,包括对JPA 2.1的支持,使得数据库操作更加方便和高效。 5. **事务管理**:Spring的事务管理功能在3.2.4中得到了增强,支持...