Использование 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, но любая общая помощь или ссылка на то, где я могу лучше узнать, как это работает, будет оценено по достоинству. Благодаря!