Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > many-to-many коллекция по столбцам


Автор: rikka 18.7.2011, 20:05
Имеется сущность Пациент, у которого есть генетичнские призаки, т.е каждому пациенту присущи значения специфичностей HLA: A1, A2, B1, B2, DR1, DR2. 
Имеется связь многие ко многим Пациентов с таблицей Специфичности:

Класс для Таблицы Пациенты:
Код


...
@Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "common_id")
    private Integer commonId;
    @Basic(optional = false)
    @Column(name = "common_num")
    private Integer commonNum;
    @Column(name = "common_group")
    private String commonGroup;
    @Column(name = "common_gender")
    private Character commonGender;
    @Column(name = "common_rh")
    private Boolean commonRh;
    @OneToMany(fetch=FetchType.LAZY, mappedBy = "common") 
    private Collection<CommonSpecificity> commonSpecificityCollection;
...



Класс для Таблицы Специфичности:
Код

 @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "specificity_id")
    private Integer specificityId;
    @Basic(optional = false)
    @Column(name = "specificity_value")
    private String specificityValue;
    @JoinColumn(name = "locus_id", referencedColumnName = "locus_id")
    @ManyToOne
    private Locus locus;



Класс для Таблицы связи Пациенты и Специфичности:
Код

 @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "common_specificity_id")
    private Integer commonSpecificityId;
    @Basic(optional = false)
    @Column(name = "common_specificity_num")
    private Integer commonSpecificityNum;
    @JoinColumn(name = "specificity_id", referencedColumnName = "specificity_id")
    @ManyToOne(fetch=FetchType.LAZY)
    private Specificity specificity;
    @JoinColumn(name = "common_id", referencedColumnName = "common_id")
    @ManyToOne(fetch=FetchType.LAZY)
    private Common common;



Проблема в том, что нужно выводить в таблицу значения типа:
Пациент_id Пациент_num Пациент_HLA_A1 Пациент_HLA_A2 Пациент_HLA_B1 и т.д 
как это сделать с использованием JTableBinding.ColumnBinding? Может, ещё какие-то варианты есть? Я получаю полностью коллекцию значений специфичностей у определенного пациента, мне надо как-то раскидать её по столбцам, может можно как-то прямо в классе "раскидать" по нескольким атрибутам? Как это можно сделать средствами JPA и Hibernate?

Автор: Farmazon 19.7.2011, 07:12
createQuery и createNativeQuery у EntityManager посмотри...

Автор: rikka 20.7.2011, 20:27
Смотрела, но чем они мне помогут? Для TableBinding этот вариант не подходит..

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)