2014-02-17 3 views
0

Использование Netbeans для разработки встроенного приложения базы данных (Derby). Я пытаюсь понять, как работает много-много отношений. Netbeans создал классы сущностей для меня. Я понимаю, как извлекать запись и фиксировать новые результаты в записи, но я не знаком с тем, как вы будете совершать «сбор», см. Код ниже.Javax Persistence Многие для многих EclipseLink JPA 2.1

@Entity 
@Table(name = "MASTER") 
@XmlRootElement 
@NamedQueries({.... 
}) 
public class Master implements Serializable { 
private static final long serialVersionUID = 1L; 
@Id 
@GeneratedValue(strategy = GenerationType.AUTO) 
@Basic(optional = false) 
@Column(name = "ID") 
private Integer id; 
@Column(name = "SDS_NUMBER") 
private Integer sdsNumber; 
@Column(name = "PRODUCT_NAME") 
private String productName; 
@Column(name = "PRODUCT_DESCRIPTION") 
private String productDescription; 
@Column(name = "SDS_FILE_NAME") 
private String sdsFileName; 
@Column(name = "USE_STATUS") 
private Boolean useStatus; 
@Column(name = "DATA_UPDATED") 
@Temporal(TemporalType.DATE) 
private Date dataUpdated; 
@Column(name = "PROPER_SHIPPING_NAME") 
private String properShippingName; 
@Column(name = "SIGNAL_WORD") 
private String signalWord; 
@Column(name = "GHS_COMPLIANT") 
private Boolean ghsCompliant; 
@JoinTable(name = "STATEMENT_LOOKUP", joinColumns = { 
    @JoinColumn(name = "SDS_NUMBER", referencedColumnName = "SDS_NUMBER")}, 
    inverseJoinColumns = { 
    @JoinColumn(name = "STATEMENT_ID", referencedColumnName = "STATEMENT_ID")}) 
@ManyToMany 
private Collection<Statements> statementsCollection; 
@ManyToMany(mappedBy = "masterCollection") 
private Collection<Manufacturers> manufacturersCollection; 
@JoinTable(name = "PICTOGRAM_LOOKUP", joinColumns = { 
    @JoinColumn(name = "SDS_NUMBER", referencedColumnName = "SDS_NUMBER")}, inverseJoinColumns = { 
    @JoinColumn(name = "PICTOGRAM_ID", referencedColumnName = "PICTOGRAM_ID")}) 
@ManyToMany 
private Collection<Pictograms> pictogramsCollection; 
@ManyToMany(mappedBy = "masterCollection") 
private Collection<Locations> locationsCollection; 
@ManyToMany(mappedBy = "masterCollection") 
private Collection<Keywords> keywordsCollection; 

public Master() { 
} 

public Master(Integer id) { 
    this.id = id; 
} Getters and Setters follow....... 
    @XmlTransient 
public Collection<Keywords> getKeywordsCollection() { 
    return keywordsCollection; 
} 

public void setKeywordsCollection(Collection<Keywords> keywordsCollection) { 
    this.keywordsCollection = keywordsCollection; 
} 


public class NewClass { 
public static void main(String[] args) { 
EntityManagerFactory entityManagerFactory = 
Persistence.createEntityManagerFactory("JavaApplication20PU"); 
EntityManager em = entityManagerFactory.createEntityManager(); 
EntityTransaction userTransaction = em.getTransaction(); 

userTransaction.begin(); 
Master record = new Master(); 
record.setProductName("Test Product Name"); 
record.setProductDescription("Test Product Description"); 
record.setProperShippingName("Proper shipping name test"); 
record.setSdsNumber(999); 
record.setSignalWord("WARNING"); 
record.setUseStatus(false); 
record.setGhsCompliant(false); 
record.setKeywordsCollection();// This is where I need help! 
em.persist(record); 
userTransaction.commit(); 
em.close(); 
entityManagerFactory.close(); 
} 
} 

Выше приведен код моего тестового класса, который заполняет запись. Прокомментированная строка - это то, где мне нужна помощь. В конечном итоге это нужно заполнить выбором из Jlist, но любая общая помощь или ссылка на то, где я могу лучше узнать, как это работает, будет оценено по достоинству. Благодаря!

ответ

0

Рассмотрите этот учебник, хороший, хороший пример, и вы можете увидеть некоторые рабочие примеры с DER.

Tutorial

А также не JList это список или ArrayList, возможно XD ошибка опечатка. В вашем тесте вы не добавляете список ключевых слов для Мастера.

Смежные вопросы