Jboss 如何使@id字段在forge crud中可编辑?

Jboss 如何使@id字段在forge crud中可编辑?,jboss,annotations,crud,jboss-forge,Jboss,Annotations,Crud,Jboss Forge,我想为具有可编辑主键的实体生成crud,但forge不生成@id字段这是我的实体请注意,id字段是字符串,而不是自动递增的id字段 package com.samples.model; // Generated 14/01/2013 11:23:23 AM by Hibernate Tools 3.4.0.CR1 import java.util.Date; import java.util.HashSet; import java.util.Set; import javax.persis

我想为具有可编辑主键的实体生成crud,但forge不生成@id字段这是我的实体请注意,id字段是字符串,而不是自动递增的id字段

package com.samples.model;

// Generated 14/01/2013 11:23:23 AM by Hibernate Tools 3.4.0.CR1

import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 * Pais generated by hbm2java
 */
@Entity
@Table(name = "pais", schema = "public")
public class Pais implements java.io.Serializable
{

   /**
   * 
   */
   private static final long serialVersionUID = -8369022633869576848L;
   private String paisId;
   private Date fechaRegistro;
   private String descripcion;
   private short estatus;
   private Set<Estado> estados = new HashSet<Estado>(0);

   public Pais()
   {
   }

   public Pais(String paisId, Date fechaRegistro, short estatus)
   {
      this.paisId = paisId;
      this.fechaRegistro = fechaRegistro;
      this.estatus = estatus;
   }

   public Pais(String paisId, Date fechaRegistro, String descripcion, short estatus, Set<Estado> estados)
   {
      this.paisId = paisId;
      this.fechaRegistro = fechaRegistro;
      this.descripcion = descripcion;
      this.estatus = estatus;
      this.estados = estados;
   }

   @Id
   @Column(name = "pais_id", unique = true, nullable = false, length = 5)
   public String getPaisId()
   {
      return this.paisId;
   }

   public void setPaisId(String paisId)
   {
      this.paisId = paisId;
   }

   @Temporal(TemporalType.TIMESTAMP)
   @Column(name = "fecha_registro", nullable = false, length = 29)
   public Date getFechaRegistro()
   {
      return this.fechaRegistro;
   }

   public void setFechaRegistro(Date fechaRegistro)
   {
      this.fechaRegistro = fechaRegistro;
   }

   @Column(name = "descripcion", length = 30)
   public String getDescripcion()
   {
      return this.descripcion;
   }

   public void setDescripcion(String descripcion)
   {
      this.descripcion = descripcion;
   }

   @Column(name = "estatus", nullable = false)
   public short getEstatus()
   {
      return this.estatus;
   }

   public void setEstatus(short estatus)
   {
      this.estatus = estatus;
   }

   @OneToMany(fetch = FetchType.LAZY, mappedBy = "pais")
   public Set<Estado> getEstados()
   {
      return this.estados;
   }

   public void setEstados(Set<Estado> estados)
   {
      this.estados = estados;
   }

}
package com.samples.model;
//由Hibernate Tools 3.4.0.CR1生成的2013年1月14日上午11:23:23
导入java.util.Date;
导入java.util.HashSet;
导入java.util.Set;
导入javax.persistence.Column;
导入javax.persistence.Entity;
导入javax.persistence.FetchType;
导入javax.persistence.Id;
导入javax.persistence.OneToMany;
导入javax.persistence.Table;
导入javax.persistence.Temporal;
导入javax.persistence.TemporalType;
/**
*hbm2java生成的PAI
*/
@实体
@表(name=“pais”,schema=“public”)
公共类Pais实现java.io.Serializable
{
/**
* 
*/
私有静态最终长serialVersionUID=-836902263869576848L;
私有字符串paisId;
私人约会费查雷吉斯特罗;
私有字符串描述;
私人短期不动产;
私有集estados=新哈希集(0);
公共Pais()
{
}
公共PAI(字符串paisId、日期fechaRegistro、短estatus)
{
this.paisId=paisId;
this.fechaRegistro=fechaRegistro;
this.estatus=estatus;
}
公共PAI(字符串paisId、日期fechaRegistro、字符串描述、短状态、集合状态)
{
this.paisId=paisId;
this.fechaRegistro=fechaRegistro;
this.descripion=descripion;
this.estatus=estatus;
this.estados=estados;
}
@身份证
@列(name=“pais_id”,unique=true,nullable=false,length=5)
公共字符串getPaisId()
{
返回此.paisId;
}
公共void setPaisId(字符串paisId)
{
this.paisId=paisId;
}
@时态(TemporalType.TIMESTAMP)
@列(name=“fecha\u registro”,null=false,长度=29)
公开日期getFechaRegistro()
{
返回此文件。fechaRegistro;
}
公共无效设置fechaRegistro(日期fechaRegistro)
{
this.fechaRegistro=fechaRegistro;
}
@列(name=“descripion”,长度=30)
公共字符串getDescription()
{
返回此.description;
}
公共void setDescription(字符串Description)
{
this.descripion=descripion;
}
@列(name=“estatus”,null=false)
公众短片
{
把这个还给我;
}
公共无效资产(短期资产)
{
this.estatus=estatus;
}
@OneToMany(fetch=FetchType.LAZY,mappedBy=“pais”)
公共集getEstados()
{
把这个还给我;
}
公共无效集合estados(集合estados)
{
this.estados=estados;
}
}
JBoss Forge用于其UI生成。因此,要实现这一点,您必须修改Forge的metawidget.xml配置文件

Forge实际上有3个Metawidget配置文件:用于查看/编辑屏幕的Metawidget-entity.xml、用于搜索过滤器的Metawidget-search.xml和用于生成Java代码的Metawidget-qbe.xml

出于您的目的,您需要修改metawidget-entity.xml。具体来说,您必须找到JpaInspector条目

<jpaInspector xmlns="java:org.metawidget.inspector.jpa" config="JpaInspectorConfig">

…并添加子节点

<hideIds><boolean>false</boolean></hideIds>
false
这一点应该是直截了当的。然而,将修改后的metawidget-entity.xml返回到Forge中实际上是很笨拙的。目前最简单的方法可能是解压缩并修改forge-scaffold-faces.jar本身。希望在未来的Forge版本中,这将变得更干净