Объект JPA, сопоставленный как OneToOne, так и OneToMany - PullRequest
2 голосов
/ 28 мая 2009

Рассмотрим следующую сущность JPA. Мой экземпляр класса приложения всегда должен иметь ссылку OneToOne на 4 специальных экземпляра Envelope, но он также имеет набор из 0 бесконечных пользовательских конвертов. Это вообще возможно? Возможно ли это для однонаправленных и / или двунаправленных ссылок?

    @Entity(name = "Application_Instance")
public class ApplicationInstance implements Serializable {

    @Id
    private int databaseId;
    private Envelope accountTransfersEnvelope = new Envelope("Account Transfers");
    @OneToOne
    private Envelope newTransationsEnvelope = new Envelope("New Transactions");
    @OneToOne
    private Envelope incomeEnvelope = new Envelope("Income Envelope");
    @OneToOne
    private Envelope creditCarEnvelope= new Envelope("Credit Card");
    @OneToMany
    protected Set<Envelope> userEnvelopes = new HashSet<Envelope>();

//rest of class
}

1 Ответ

2 голосов
/ 28 мая 2009

Вы можете сделать это с помощью сопоставления таблицы соединений:

@OneToMany
@JoinTable( name = "USER_ENVELOPE",
            joinColumns = { @JoinColumn( name = "APP_ID" ) },
            inverseJoinColumns { @JoinColumn( name = "ENVELOP_ID" ) } )        
protected Set<Envelope> userEnvelopes = new HashSet<Envelope>();
...