Quiero hacer pgId y pgName como clave compuesta donde tanto pgId como pgName son valores asignados. no estoy seguro de cómo debo hacerlo? en la red, obtengo ejemplos en los que la columna de clave compuesta se refiere a la columna de alguna otra tabla, pero no este tipo de escenario.

@Entity
@Table(name = "PersonDetails")
public class PersonDetailsData implements Serializable {
  private static final long serialVersionUID    = 1L;

  @Id
  @Basic
  private int               pgId;

  @Basic(optional = true)
  @Column(nullable = true)
  private int               orgId;

  @Basic(optional = true)
  @Column(nullable = true)
  private String            pgName;


   public PersonWikiDetailsData() {
  }

  public int getPpId() {
    return ppId;
  }

  public void setPpId(int ppId) {
this.ppId = ppId;
  }

  public String getSpaceName() {
return spaceName;
  }

  public void setSpaceName(String spaceName) {
this.spaceName = spaceName;
  }

  }
0
M Sach 10 abr. 2012 a las 09:25

1 respuesta

La mejor respuesta

En nuestro proyecto tenemos una entidad de formulario que tiene una clave primaria de 2 partes como su proyecto.

Aquí está la clase de clave compuesta:

@Embeddable
public class FormId implements java.io.Serializable
{
    /** Generated <code>serialVersionUID</code>. */
    private static final long serialVersionUID = 906178514456716120L;

    /** The code of the form. */
    @Column(name = "FRM_CD", nullable = false, length = 80)
    private String formCode;
    /** The version of the form. */
    @Column(name = "FRM_VR", nullable = false, precision = 2, scale = 2)
    private BigDecimal formVersion;

    ...
}

Y así es como se usa en la entidad Form:

/** The primary key of the form. */
@EmbeddedId
private FormId formId;
1
J Barclay 10 abr. 2012 a las 09:39