首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > Java > hibernate syn template:用于从mapping生成java类
【标  题】:hibernate syn template:用于从mapping生成java类
【关键字】:hibernate,syn,template,mapping,java
【来  源】:http://www.blogjava.net/goldrain/archive/2005/08/23/10806.html

hibernate syn template:用于从mapping生成java类

package $class.packageName;

import java.util.Date;

public class $class.className implements java.io.Serializable{

  //primary key
   $class.Id.Property.ClassName $class.Id.Property.JavaName ;
  //prop
#foreach ($prop in $class.Properties)
   ${prop.ClassName} $prop.JavaName ;
#end

   public ${class.id.Property.ClassName} ${class.id.Property.GetterName}(){
        return ${class.id.Property.JavaName};
   }

   public void ${class.id.Property.SetterName}(${class.id.Property.ClassName} value){
        ${class.id.Property.JavaName} = value;
   }

#foreach ($prop in $class.Properties)
   public ${prop.ClassName} ${prop.GetterName}(){
        return ${prop.JavaName};
   }

   public void ${prop.SetterName}(${prop.ClassName} value){
        ${prop.JavaName} = value;
   }
#end

   public String toString(){
       return "${class.ClassName} : "+${class.Id.Property.JavaName}; 
   }


  private int hashCode = Integer.MIN_VALUE;

#if ($class.Id || $class.AlternateKeys.size() > 0)
#if ($class.Id.hasExternalClass())
 public int hashCode () {
  if (Integer.MIN_VALUE == this.hashCode) {
#if ($class.AlternateKeys.size() == 0)
#if ($class.Id.Property.isPrimitive())
   return (int) this.${class.Id.Property.GetterName}();
#else
   if (null == this.${class.Id.Property.GetterName}()) return super.hashCode();
   else {
    String hashStr = this.getClass().getName() + ":" + this.${class.Id.Property.GetterName}().hashCode();
    this.hashCode = hashStr.hashCode();
   }
#end
#else
   StringBuffer hashStr = new StringBuffer();
   hashStr.append(this.getClass().getName() + ":");
#foreach ($prop in $class.AlternateKeys)
#if ($prop.isPrimitive())
   hashStr.append(new ${prop.ObjectClass}(this.${prop.GetterName}()).toString() + ":");
#else
   if (null == this.${prop.GetterName}()) return super.hashCode();
   else hashStr.append(this.${prop.GetterName}().toString() + ":");
#end
#end
   this.hashCode = hashStr.toString().hashCode();
#end
  }
  return this.hashCode;
 }
#else
 public int hashCode () {
  if (Integer.MIN_VALUE == this.hashCode) {
   StringBuffer sb = new StringBuffer();
#foreach ($prop in $class.Id.Properties)
#if ($prop.isPrimitive())
   sb.append(new $!{prop.ObjectClass}(this.${prop.GetterName}()).hashCode());
   sb.append(":");
#else
   if (null != this.${prop.GetterName}()) {
    sb.append(this.${prop.GetterName}().hashCode());
    sb.append(":");
   }
   else {
    return super.hashCode();
   }
#end
#end
   this.hashCode = sb.toString().hashCode();
  }
  return this.hashCode;
 }
#end
#end

#if ($class.Id || $class.AlternateKeys.size() > 0)
#if ($class.Id.hasExternalClass())
 public boolean equals (Object obj) {
  if (null == obj) return false;
  if (!(obj instanceof ${class.ClassName})) return false;
  else {
   ${class.ClassName} mObj = (${class.ClassName}) obj;
#if ($class.AlternateKeys.size() == 0)
#if ($class.Id.Property.isPrimitive())
   return (this.${class.Id.Property.GetterName}() == mObj.${class.Id.Property.GetterName}());
#else
   if (null == this.${class.Id.Property.GetterName}() || null == mObj.${class.Id.Property.GetterName}()) return false;
   else return (this.${class.Id.Property.GetterName}().equals(mObj.${class.Id.Property.GetterName}()));
#end
#else
   boolean isEqual = true;
#foreach ($prop in $class.AlternateKeys)
#if ($prop.isPrimitive())
   isEqual = isEqual && (this.${prop.GetterName}() == mObj.${prop.GetterName}());
#else
   if (null == this.${prop.GetterName}() || null == mObj.${prop.GetterName}()) return false;
   else isEqual = isEqual && (this.${prop.GetterName}().equals(mObj.${prop.GetterName}()));
#end
#end
   return isEqual;
#end
  }
 }
#else
 public boolean equals (Object obj) {
  if (null == obj) return false;
  if (!(obj instanceof ${class.ClassName})) return false;
  else {
   ${class.ClassName} mObj = (${class.ClassName}) obj;
#foreach ($prop in $class.Id.Properties)
#if ($prop.isPrimitive())
   if (this.${prop.GetterName}() != mObj.${prop.GetterName}()) {
    return false;
   }
#else
   if (null != this.${prop.GetterName}() && null != mObj.${prop.GetterName}()) {
    if (!this.${prop.GetterName}().equals(mObj.${prop.GetterName}())) {
     return false;
    }
   }
   else {
    return false;
   }
#end
#end
#if ($class.Id.Properties.size() > 0)
   return true;
#else
   return super.equals(obj);
#end
  }
 }
#end
#end

}

这次移植bbs到mssql的体验:【上一篇】
web开发中的问题,解决,及注意点:【下一篇】
【相关文章】
  • Struts + Spring + Hibernate 框架资源--整理
  • Hibernate使用手记(1)
  • 又发现blogjava的一个大bug
  • 用javascript放大图片局部
  • EasyRecovery 中java文件的签名
  • 在javascript中用command 模式实现undo和redo
  • Groovy MOP实现mini-language 如传说中Java7.0的XML嵌入式语法
  • 在Spring+Hibernate框架下,用动态语言写业务类
  • Antlr--从Hibernate3如何解释HQL语言学习Antlr的使用
  • SWIG,C/C++类库与Java,Python等泛高阶语言的万能粘合剂
  • 【随机文章】
  • 四大OLAP工具选型浅析
  • 特殊IP地址
  • Dreamweaver MX 2004 浏览器检测
  • LINUX下动态链接库的创建与应用(2)
  • 深入剖析JSP和Servlet对中文的处理(3)
  • Samba3 学习点滴
  • 写得蛮好的linux学习笔记
  • 网通电信双通道解决方案
  • 部署 Microsoft SQL Server 2005 群集
  • HSRP的工作原理
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.