PowerDesign设计的OOM的实体类,这么多的类和属性再在代码中写一遍肯定又费时,又容易出错,像这种模型设计一般都提供了代码生成的功能,并且可以根据我们的需要去配置去生成。下面来看PowerDesign生成实体类,并加入JPA注解的配置。
下面遵循这样一个流程:包>>引用>>类>>属性>>getter/setter方法>>注释
1、进入配置
2、添加包和引入:
import java.io.Serializable;
import java.util.*;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import org.hibernate.annotations.Cache;
import org.hibernate.annotations.CacheConcurrencyStrategy;
import org.hibernate.annotations.GenericGenerator;
3、添加类注解:
@Entity
@Table(name="%Code%")
序列化添加继承:implements Serializable
4、如下目录下添加getterFunction文件:
包括主键和属性的注解:
.set_value(visibility,public,new)
.set_value(getMethod,get%.FU:fieldCode%,new)
.if(%dataType% == "UUID")
@Id
@GeneratedValue(generator="hibernateuuidgenerator")
@GenericGenerator(name="hibernateuuidgenerator", strategy ="uuid")
@Column(name="%Name%",length=32)
.else
@Column(name="%Name%",length=255)
.endif
[%visibility%]["%flags%"] %dataType% %getMethod%()
{
return %fieldCode%;
}
uuid要使用Hibernate的生成策略,EJB中没有。
5、再添加setterFunction文件:
.set_value(visibility,public,new)
.set_value(setMethod,set%.FU:fieldCode%,new)
[%visibility%]["%flags%"]%dataType% %setMethod%(%dataType% %fieldCode%)
{
this.%fieldCode% = %fieldCode%;
}
6、把新建的getterFunction和setterFunction两个文件加到class里:
[%getterFunction%]
[%setterFunction%\n\n]
7、模块注释
/***********************************************************************
* 模块: %sourceFilename%
* 作者: %Modifier%
* 说明: Defines the %ObjectType% %Code%
* 日期: %ModificationDate%
***********************************************************************/
总结
PB中的语法很容易看懂,很容易上手,像if elseif 这些都用过的。