I'm new to JavaFX and I'm trying to refactor an old Swing application into JavaFX one.
I'm also using JPA (with EclipseLink implementation) to save/retrieve data.
So I've defined some POJOs annotated. 
Here below my annotated 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 + " ]";
  }
}
I'm having some trouble with the TableViewcontrol:
Any idea?
TiwulFX provides JavaFX custom components specially designed to work with java POJO objects.
Works for me without changing my POJO.
TableColumn coluna1 = new TableColumn("Nome");
TableColumn coluna2 = new TableColumn("Álbum");
TableColumn coluna3 = new TableColumn("Imagem");
TableColumn coluna4 = new TableColumn("Descrição");
TableColumn coluna5 = new TableColumn("Tags");
coluna1.setCellValueFactory(
    new PropertyValueFactory<>("nome")
);
coluna2.setCellValueFactory(
    new PropertyValueFactory<>("album")
);
...
tabelaItens.getColumns().addAll(coluna1, coluna2, coluna3, coluna4, coluna5);
tabelaItens.setItems(FXCollections.observableArrayList(itens));
POJO:
@Entity
public class Item implements Serializable {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id")
    private Long id;
    @ManyToOne
    private Album album;
    @Column(name = "nome")
    private String nome;
    @Temporal(javax.persistence.TemporalType.TIMESTAMP)
    @Column(name = "data_criacao")
    private Calendar dataCriacao;
    @Column(name = "data_imagem")
    @Temporal(javax.persistence.TemporalType.TIMESTAMP)
    private Calendar dataImagem;
    @Lob
    @Basic(fetch = FetchType.LAZY)
    @Column(name = "imagem")
    private byte[] imagem;
    @Column(name = "tipo_imagem")
    private String tipoImagem;
    @Column(name = "descricao")
    private String descricao;
    @Column(name = "tags")
    private String tags;
    ...
}
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With