0
我有一個包含@ElementCollection
註釋的屬性的實體。此屬性是我添加電話(電話)的字符串列表。我將這些電話顯示在primefaces的dataTable中。刪除行數據表?
如何刪除與選定的行這個telphone?
我正在試着這個。
實體
@Entity
public class UnidadeEscolar implements Serializable{
private static final long serialVersionUID = 1L;
@Id @GeneratedValue(strategy=GenerationType.AUTO)
private Long id;
@NotNull @Size(min=5, message="Informe o nome da unidade escolar")
@Column(unique=true)
private String nome;
private String departamento;
@Embedded
private Endereco endereco;
@ElementCollection
@JoinTable(name="telefones_ue", [email protected](name="ue_id"))
private List<String> telefones = new ArrayList<String>();
/** adiciona telefones */
public void addTelefone(String tel){
telefones.add(tel);
}
/** remove telefone */
public void removeTelefone(int row){
telefones.remove(row);
}
Managed Bean的
@ManagedBean
@ViewScoped
public class UnidadeEscolarMB implements Serializable{
private static final long serialVersionUID = 1L;
private UnidadeEscolar bean;
private GenericDAO<UnidadeEscolar> dao;
private List<UnidadeEscolar> unidades = null;
private String telefone = "";
/** add telphone to entity */
public void addTelefones(){
//System.out.println(telefone);
bean.addTelefone(telefone);
telefone = "";
}
/** remove telphone of entity */
public void removeTelefone(){
bean.getTelefones().remove(telefone);
}
public String getTelefone() {
return telefone;
}
public void setTelefone(String telefone) {
this.telefone = telefone;
}
XHTML
<p:tab title="Contato">
<p:fieldset legend="Telefones">
<p:dataTable id="tabelaTelefones" widgetVar="datalistTelefones"
value="#{unidadeEscolarMB.bean.telefones}" var="fone"
emptyMessage="Nenhum registro encontrado"
selectionMode="single"
selection="#{unidadeEscolarMB.telefone}"
rowKey="#{unidadeEscolarMB.bean.id}"
>
<p:column headerText="Telefone">
<h:outputText value="#{fone}"/>
</p:column>
</p:dataTable>
<p:commandButton actionListener="#{unidadeEscolarMB.removeTelefone()}" value="-" update="tabelaTelefones"/>
</p:tab>
如何刪除電話塞萊在dataTable中加入?