JavaFX,TableView和JPA

Ale*_*exD 5 javafx pojo tableview

我是JavaFX的新手,我正在尝试将旧的Swing应用程序重构为JavaFX.

我也在使用JPA(使用EclipseLink实现)来保存/检索数据.
所以我已经定义了一些注释的POJO.

这里有我注释的POJO:

import java.io.Serializable;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.Transient;

/**
 *
 * @author alex
 */
@Entity
@Table(name = "materiale", catalog = "elledia", schema = "")
public class Materiale implements Serializable {
  @Transient
  private static final long serialVersionUID = 1L;

  @Id
  @GeneratedValue(strategy = GenerationType.IDENTITY)
  @Basic(optional = false)
  @Column(name = "id")
  private Long id;

  @Basic(optional = false)
  @Column(name = "colata")
  private String colata;

  @Basic(optional = false)
  @Column(name = "dimensione")
  private String dimensione;

  @Basic(optional = false)
  @Column(name = "specifica")
  private String specifica;

  @Basic(optional = false)
  @Column(name = "unita_misura")
  private String unitaMisura;

  @Column(name = "version")
  private Integer version;

  @ManyToOne (fetch = FetchType.LAZY)
  @JoinColumn (name = "certificato_id")
  private Certificato certificato;

  public Materiale(Long id, String colata, String dimensione, String specifica, String unitaMisura, Certificato certificato) {
    this.id = id;
    this.colata = colata;
    this.dimensione = dimensione;
    this.specifica = specifica;
    this.unitaMisura = unitaMisura;
    this.certificato = certificato;
  }

  public Long getId() {
    return id;
  }

  public void setId(Long id) {
    Long oldId = this.id;
    this.id = id;
  }

  public String getColata() {
    return colata;
  }

  public void setColata(String colata) {
    String oldColata = this.colata;
    this.colata = colata;
  }

  public String getDimensione() {
    return dimensione;
  }

  public void setDimensione(String dimensione) {
    String oldDimensione = this.dimensione;
    this.dimensione = dimensione;
  }

  public String getSpecifica() {
    return specifica;
  }

  public void setSpecifica(String specifica) {
    String oldSpecifica = this.specifica;
    this.specifica = specifica;
  }

  public String getUnitaMisura() {
    return unitaMisura;
  }

  public void setUnitaMisura(String unitaMisura) {
    String oldUnitaMisura = this.unitaMisura;
    this.unitaMisura = unitaMisura;
  }

  public Integer getVersion() {
    return version;
  }

  public void setVersion(Integer version) {
    Integer oldVersion = this.version;
    this.version = version;
  }

  public Certificato getCertificato() {
    return certificato;
  }

  public void setCertificato(Certificato certificato) {
    Certificato oldCertificato = this.certificato;
    this.certificato = certificato;
  }

  @Override
  public int hashCode() {
    int hash = 0;
    hash += (id != null ? id.hashCode() : 0);
    return hash;
  }

  @Override
  public boolean equals(Object object) {
    // TODO: Warning - this method won't work in the case the id fields are not set
    if (!(object instanceof Materiale)) {
      return false;
    }
    Materiale other = (Materiale) object;
    if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
      return false;
    }
    return true;
  }

  @Override
  public String toString() {
    return "com.alessandrodonato.elledia.certificati.gui.Materiale[ id=" + id + " ]";
  }

}
Run Code Online (Sandbox Code Playgroud)

我在使用TableViewcontrol时遇到了一些麻烦:

  • 好的,我已经阅读了关于如何将POJO绑定到TableView的各种帖子.
  • 好吧,我必须定义一个ObservableList,将它绑定到TableView以填充和更新它.
  • 但要定义它我在我的POJO属性中使用SimpleStringProperty而不是String,注释不适用于此...

任何的想法?

tar*_*lah 1

TiwulFX提供JavaFX专门设计用于java POJO对象的自定义组件。