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 這些都用過的。