Hallo Stackoverflow, hatte ich harte Zeit mit OneToMany Mapping Ich habe gegoogelt, um die Lösung von Morgen nichts geholfen zu finden.Fremdschlüssel Wert ist Null in OneToMany Zuordnung
Ich versuche, @ OneToMany Mapping-Beziehung zu tun. folgenden sind die Klassen:
Klasse: 1
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "cbid")
private int cbid;
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "cid", referencedColumnName = "custid", insertable = false, updatable = false)
private CustomerDetails customerDetails;
@Column(name = "customerid")
private Integer customerid;
@Column(name = "subtotal")
private Double subtotal;
@Column(name = "tax_amount")
private Double tax_amount;
@Column(name = "total_amount")
private Double total_amount;
@Column(name = "paid_amount")
private Double paid_amount;
@Column(name = "amount_due")
private Double amount_due;
@Column(name = "invoiceNumber")
private int invoiceNumber;
@Column(name = "d")
private Date d;
@OneToMany(mappedBy="cbpd", cascade=CascadeType.ALL, fetch=FetchType.LAZY)
@OrderColumn(name="lindex")
private List<ProductNameBuyingDetails> pnbd = new ArrayList<ProductNameBuyingDetails>();
//setters and getters
Klasse: 2
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "byno")
private int buyingnumber;
@Column(name = "productnumber")
private Integer productNumber;
@Column(name = "productname")
private String productName;
@Column(name = "productprice")
private Double productPrice;
@Column(name = "productquantity")
private Double productQuantity;
@Column(name = "producttotal")
private Double productTotal;
@ManyToOne(cascade=CascadeType.ALL)
@JoinColumn(name="pbid", referencedColumnName="cbid", insertable=false, updatable=false)
private CustomerBuyingProductsDetails cbpd;
//setters and getters
I session.save() Methode auf diese Weise
CustomerBuyingProductsDetails customerBuyingProductsDetails = new CustomerBuyingProductsDetails();
customerBuyingProductsDetails.setCustomerid(customerBuyingProducts.getCustomerid());
customerBuyingProductsDetails.setInvoiceNumber(customerBuyingProducts.getInvoiceNumber());
customerBuyingProductsDetails.setAmount_due(customerBuyingProducts.getAmount_due());
customerBuyingProductsDetails.setD(customerBuyingProducts.getD());
customerBuyingProductsDetails.setPaid_amount(customerBuyingProducts.getPaid_amount());
customerBuyingProductsDetails.setSubtotal(customerBuyingProducts.getSubtotal());
customerBuyingProductsDetails.setTax_amount(customerBuyingProducts.getTax_amount());
customerBuyingProductsDetails.setTotal_amount(customerBuyingProducts.getTotal_amount());
sessionFactory.getCurrentSession().save(customerBuyingProductsDetails);
Iterator<Integer> itrNum = customerBuyingProducts.getProductNumber().iterator();
Iterator<String> itrName = customerBuyingProducts.getProductName().iterator();
Iterator<Double> itrPrice = customerBuyingProducts.getProductPrice().iterator();
Iterator<Double> itrQuan = customerBuyingProducts.getProductQuantity().iterator();
Iterator<Double> itrTotal = customerBuyingProducts.getProductTotal().iterator();
int i=0;
while (itrNum.hasNext()) {
ProductNameBuyingDetails pnbd = new ProductNameBuyingDetails();
pnbd.setProductNumber(itrNum.next());
pnbd.setProductName(itrName.next());
pnbd.setProductPrice(itrPrice.next());
pnbd.setProductQuantity(itrQuan.next());
pnbd.setProductTotal(itrTotal.next());
pnbd.setCbpd(customerBuyingProductsDetails);
sessionFactory.getCurrentSession().save(pnbd);
customerBuyingProductsDetails.getPnbd().add(pnbd);
}
sessionFactory.getCurrentSession().save(customerBuyingProductsDetails);
}
Ruhe verwende erzeugt die Abfrage auf diese Weise
Hibernate: insert into cb (amount_due, customerid, d, invoiceNumber, paid_amount, subtotal, tax_amount, total_amount, cbid) values (?, ?, ?, ?, ?, ?, ?, ?, ?)
Hibernate: insert into prodnamebuy (productname, productnumber, productprice, productquantity, producttotal, byno) values (?, ?, ?, ?, ?, ?)
Fremdschlüssel Wert wird nicht eingefügt, in der Datenbanktabelle zeigt es leer (null) Ich kann nicht korrigieren, wo ich falsch liege. Vielen Dank im Voraus .. Hoffnung für das beste ..
danke für Hilfe, Problem gelöst ... Danke :) –
Wenn das Problem aufgrund einer der Antworten gelöst wurde, können Sie bitte akzeptieren? :) – IntelliData