Muchas ocasiones deseamos referenciar dos documentos, en los formularios usaremos un <p:autocomplete> para obtener el documento referenciado.
@Getter
@Setter
public class Grupoarticulo {
@Id
private String idgrupoarticulo;
private String descripcion;
private Double porcentajeventapublico;
private Double porcentajeventacredito;
private Integer redondeodecimales;
private String activo;
@Embedded
private List<UserInfo> userInfo;
public Grupoarticulo() {
}
@Override
public String toString() {
return "Grupoarticulo{" + "idgrupoarticulo=" + idgrupoarticulo + ", descripcion=" + descripcion + '}';
}
}
@Setter
public class Modelo {
@Id
private String idmodelo;
private String descripcion;
@Referenced(documment = "Grupoarticulo", repository = "com.avbravo.ejbspard.ejb.GrupoarticuloRepository",
field = "idgrupoarticulo",javatype = "String",lazy = false)
private Grupoarticulo grupoarticulo;
private String activo;
@Embedded
private List<UserInfo> userInfo;
public Modelo() {
}
}
Agregar el services del entity referenciado y generar los get/set. Se usuaran para el autocomplete.
@Inject
GrupoarticuloServices grupoarticuloServices;
public GrupoarticuloServices getGrupoarticuloServices() {
return grupoarticuloServices;
}
public void setGrupoarticuloServices(GrupoarticuloServices grupoarticuloServices) {
this.grupoarticuloServices = grupoarticuloServices;
}
Agregar el autocomplete.
<p:outputLabel value="#{msg['field.grupoarticulo']}"/>
<p:autoComplete scrollHeight="250" dropdown="false" size="50"
emptyMessage="#{app['info.nohayregistros']}"
value="#{modeloController.modelo.grupoarticulo}"
completeMethod="#{modeloController.grupoarticuloServices.complete}"
var="p" itemLabel="#{p.descripcion}" itemValue="#{p}" forceSelection="true">
<f:converter binding="#{grupoarticuloConverter}"/>
<f:attribute name="field" value="descripcion" />
</p:autoComplete>
<p:column headerText="#{msg['field.grupoarticulo']}"
sortBy="#{item.grupoarticulo.descripcion}" filterMatchMode="contains" >
<h:outputText value="#{item.grupoarticulo.descripcion}" />
</p:column>