AMP(appfuse maven plugin)
建立一個javaBean
package org.appfuse.model;import javax.persistence.Entity;import javax.persistence.GenerationType;import javax.persistence.Id;import javax.persistence.GeneratedValue;import javax.persistence.Column;import org.apache.commons.lang.builder.EqualsBuilder;import org.apache.commons.lang.builder.HashCodeBuilder;import org.apache.commons.lang.builder.ToStringBuilder;@Entitypublic class Persion extends BaseObject { private Long id ; private String firstName ; private String lastName ; @Id @GeneratedValue(strategy = GenerationType.AUTO) public Long getId() { return id ; } public void setId(Long id) { this.id = id; } @Column(name = "first_name" , length = 50) public String getFirstName() { return firstName ; } public void setFirstName(String firstName) { this.firstName = firstName; } @Column(name = "last_name" , length = 50) public String getLastName() { return lastName ; } public void setLastName(String lastName) { this.lastName = lastName; } /** * @see java.lang.Object#equals(Object) */ public boolean equals(Object object) { if (!(object instanceof Persion)) { return false ; } Persion rhs = (Persion) object; return new EqualsBuilder().append(this. firstName, rhs.firstName) .append( this.id , rhs.id).append( this.lastName , rhs.lastName) .isEquals(); } /** * @see java.lang.Object#hashCode() */ public int hashCode() { return new HashCodeBuilder(248915313, 1539783955) .append( this.firstName ).append(this. id).append( this.lastName ) .toHashCode(); } /** * @see java.lang.Object#toString() */ public String toString() { return new ToStringBuilder(this).append( "lastName", this.lastName ) .append( "id", this .id ).append("firstName", this.firstName ) .toString(); }}
在命令列下運行mvn appfuse:gen -Dentity=Persion,這個POJO的CRUD代碼即被產生,並自動添加到項目中。注意:預設的類名是在 ${groupId}.model.Persion下面,如果想指定一個子包名,需要指定全部路徑,不如產生${groupId}.subPackage.model.Persion. mvn appfuse:gen -Dentity={groupId}.subPackage.model.Persion
hibernate.cfg.xml 添加了Persion 對應的mapping<hibernate-configuration> <session-factory > <mapping class ="org.appfuse.model.User" /> <mapping class ="org.appfuse.model.Role" /> <mapping class ="com.mapbar.model.Persion" /> </session-factory ></hibernate-configuration>
接下來根據這個POJO產生資料表。
在命令列下運行mvn compile hibernate3:hbm2ddl。 此時資料庫中添加了此POJO對應的表。mvn appfuse:gen-model是appfuse maven plugin(簡稱AMP)中的一個命令,用以從資料庫反向工程產生pojo。