java - 尝试最佳解决方案?

标签 java swing jpa arraylist jtable

我正在寻找解决我的问题的方法。我有 2 个 java 类域。 Graduacao 和 Aluno,在 Graduacao 我有一个属性“graus”,它是一个集合。 在 Aluno 类中,我有集合属性“List graduacao”。 我在关于 ComboBoxModel 的 JComboBox 中添加了 Graduacao,当用户选择了 Graduacao 时,我有一个显示 Graduacao 的“graus”的 JList。

我需要的是获取用户选择的 Graduacao 和 graus,并将其添加到 Aluno,并在带有 AbstractTableModel 的 JTable 中显示结果后保留。

我正在尝试这个

@Entity
@Table(name="graduacao")
public class Graduacao {

    @Id @GeneratedValue
    private Integer id;

    @NotNull @Column(unique = true)
    private String graduacao;

    @ElementCollection
    @CollectionTable(name="graduacao_grau", joinColumns=@JoinColumn(name="id_graduacao"))
    @Column(name="grau")    
    private List<String> graus;

    //get and set


@Entity
@Table(name="aluno")
public class Aluno {
    @Id @GeneratedValue
    private Integer id;

    //informacoes gerais
    @NotNull
    private String nome;
    private String cpf;
    private String rg;
    private String nomePai;
    private String nomeMae; 
    @Temporal(TemporalType.DATE)
    private Date dtNascimento;
    @Temporal(TemporalType.TIMESTAMP)
    private Date dtCadastro;
    private String status;
    private String observacoes;

    //logradouro
    private String endereco;    
    private String bairro;
    private String complemento;
    private String cidade;
    private String cep;    
    @Enumerated(EnumType.STRING)
    private EstadoBrasileiro uf;

    //contato
    @ElementCollection
    @CollectionTable(name="telefone_aluno", joinColumns=@JoinColumn(name="id_aluno"))
    @Column(name="telefone")
    private List<String> telefones;
    private String email;

    //graduacao
    @OneToMany @JoinColumn(name="id_aluno")
    private List<Graduacao> graduacao;
    @Temporal(TemporalType.DATE)
    private Date dataGraduou;

    //federacao
    @OneToMany @JoinColumn(name="id_federacao")
    private List<Federacao> federacao;

    //get and set

这里打印 enter image description here

/** 编辑 */ 我解决了这个问题,这里是项目:http://www.4shared.com/zip/1Gbj-IZLce/project_example.html

最佳答案

完整示例超出了 StackOverflow 的范围。两种方法很常见,但都不简单:

  • 创建自定义 TableModel使用 JPA 查询和实体来实现 AbstractTableModel 所需的方法;显示了一个使用 JComboBox 的非常简单的示例 here ;显示了带有分页的完整 TableModel 示例 here .

  • 使用 org.jdesktop.beansbinding,显示 here并提到 herehere .

answer 中显示了与此主题相关的许多辅助链接.

关于java - 尝试最佳解决方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24975286/

相关文章:

java - JPanel 元素未出现

java - 如何使jtable中的一行不可选择?

java - 使用 Spring JPA 存储库进行不同计数

java - 如何限制 JPA Batch 查询的内存使用?

java - 重绘占用CPU过多

java - @PersistenceUnit 注释不会创建 EntityManageFactory emf=null

java - 从 native 迁移到 EclipseLink 持久性

java - 如何使用java清除Selenium中的下拉菜单

java - SWT:表大小调整问题

java - setAlignmentX(CENTER_ALIGNMENT) 不在 JFrame 中使 boxLayout 居中