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;
@Entity
public 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。
在命令行下运行mvn compile hibernate3:hbm2ddl。
此时数据库中添加了此POJO对应的表。
mvn appfuse:gen-model是appfuse maven plugin(简称AMP)中的一个命令,用以从数据库反向工程生成pojo。