- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
用ant执行POJO自动生成映射文件及数据表
用ant执行POJO自动生成映射文件及数据表
关于用hibernate映射类时涉及到一个问题:
1.先创建数据表再写JOPO类和映射文件
2.先写POJO类,然后映射文件,最后数据库
3.先映射文件,再同时生成POJO类和数据库
第1种方法有背面向对象原理,而且控制起来不大方便,所以不推荐。
第2种我认为思路会比较清楚,符合一般人思维习惯,但必须在POJO类里添加大量Xdoclet注释。
第3种很方便,大家都推荐,但对于不习惯写映射文件的人有点小麻烦。但后两种都属于工具代人工生成数据表,因此需要精细控制数据表间关系的应该考虑在数据库生成后适当修改。(关于这个问题,仁者见仁,智者见智。大家有经验不妨说出来一起探讨下)
现结合自身实践对第2种做些介绍,有问题请名位大大指正。
假设工程为myeclipse web工程。现在POJO已经编好,并且Xdoclet注释都正确编写。
如下示例类
package org.easyshop.domain;
import java.util.HashSet;
import java.util.Set;
/*** * @hibernate.class**/
public class Category {
private Long categoryId;private String categoryName;
private String imageURL;
private SetCategory subCategory=new HashSetCategory();
private SetItem items=new HashSetItem();
/*** @hibernate.id* column=categoryId* unsaved-value=null* generator-class=native* */
public Long getCategoryId(){
return categoryId;
}
public void setCategoryId(Long categoryId){
this.categoryId = categoryId;
}
/*** * @perty length=32 not-null=true* */
public String getCategoryName() {
return categoryName;
}
public void setCategoryName(String name) {
this.categoryName = name;
}
/*** * @perty length=64* */
public String getImageURL() {
return imageURL;
}
public void setImageURL(String imageURL) {
this.imageURL = imageURL;
}
/*** * @hibernate.set cascade=all
* @hibernate.key column=categoryId
* @hibernate.one-to-many class=org.easyshop.domain.Cagegory * */
public SetCategory getSubCategory() {
return subCategory;
}
public void setSubCategory(SetCategory sub) {this.subCategory = sub;}
/*** * @hibernate.set table=category_item cascade=save-update lazy=true
* @hibernate.key column=categoryId
* @hibernate.many-to-many class=org.easyshop.domain.Item column=itemId* */
public SetItem getItems() {
return items;
}
public void setItems(SetItem items) {
T his.items = items;
}
}
?ps:这里有个问题,请教各位。hibernate的返身关联问题。如上的private SetCategory subCategory=new HashSetCategory();这样能像一对多那样进行映射否,小弟还没有进行试验,只是在hibernate高手秘极里看到过这么一个名词。
现在要让工具来自动生成hbm,和数据表,将如下ant build文件放在工程根目录。注意需要将工程用到的jar包放到WebRoot/WEB-IN
文档评论(0)