私は互いに接続されている3つのクラスがあります。Order、OrderDetail、およびProduct。JPAプロジェクトで行う場合、次のようになります。
@Override
public Order getOrderById(String orderID) {
Order order = (Order)
em.createQuery("select A from Order A where A.orderId = ?1")
.setParameter(1, orderID)
.getSingleResult();
return order;
}
すべての情報が取得されます。ただし、ebjプロジェクトに移動すると。私は注文を受け取るだけで、それだけです。ただし、すべてのクラスは、persistence.xmlファイル(JPAとejb3)の両方に含まれています。それはなぜですか、どのように解決すればよいですか?3つのクラスが下に表示されます。OracleWeblogic10.3.3を使用しています。サーバーを再起動してクリアしようとしましたが、うまくいきませんでした。
*package eshop;
import java.io.Serializable;
import javax.persistence.*;
import java.util.ArrayList;
import java.util.List;*
/**
* The persistent class for the orders database table.
*
*/
@Entity
@Table(name="orders")
public class Order implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name="order_id")
private String orderId;
@Column(name="cc_expiry")
private String ccExpiry;
@Column(name="cc_name")
private String ccName;
@Column(name="cc_number")
private String ccNumber;
@Column(name="delivery_address")
private String deliveryAddress;
@Column(name="delivery_name")
private String deliveryName;
@Column(name="delivery_surname")
private String deliverySurname;
private String status;
//bi-directional many-to-one association to OrderDetail
@OneToMany(mappedBy="order", cascade=CascadeType.PERSIST)
private List<OrderDetail> orderDetails = new ArrayList<OrderDetail>();
public void addOrUpdateOrderDetail(Product product) {
this.orderDetails.add(new OrderDetail(product));
}
public Order() {
}
public String getOrderId() {
return this.orderId;
}
public void setOrderId(String orderId) {
this.orderId = orderId;
}
public String getCcExpiry() {
return this.ccExpiry;
}
public void setCcExpiry(String ccExpiry) {
this.ccExpiry = ccExpiry;
}
public String getCcName() {
return this.ccName;
}
public void setCcName(String ccName) {
this.ccName = ccName;
}
public String getCcNumber() {
return this.ccNumber;
}
public void setCcNumber(String ccNumber) {
this.ccNumber = ccNumber;
}
public String getDeliveryAddress() {
return this.deliveryAddress;
}
public void setDeliveryAddress(String deliveryAddress) {
this.deliveryAddress = deliveryAddress;
}
public String getDeliveryName() {
return this.deliveryName;
}
public void setDeliveryName(String deliveryName) {
this.deliveryName = deliveryName;
}
public String getDeliverySurname() {
return this.deliverySurname;
}
public void setDeliverySurname(String deliverySurname) {
this.deliverySurname = deliverySurname;
}
public String getStatus() {
return this.status;
}
public void setStatus(String status) {
this.status = status;
}
public List<OrderDetail> getOrderDetails() {
return this.orderDetails;
}
public void setOrderDetails(List<OrderDetail> orderDetails) {
this.orderDetails = orderDetails;
}
}
package eshop;
import java.io.Serializable;
import javax.persistence.*;
import java.math.BigDecimal;
/**
* The persistent class for the order_details database table.
*
*/
@Entity
@Table(name="order_details")
public class OrderDetail implements Serializable {
private static final long serialVersionUID = 1L;
@GeneratedValue(strategy=GenerationType.AUTO)
private int id;
private BigDecimal price;
private int quantity;
//bi-directional many-to-one association to Order
@ManyToOne
@JoinColumn(name="order_id")
private Order order;
//bi-directional many-to-one association to Product
@ManyToOne
@JoinColumn(name="product_id")
private Product product;
@Id
private int product_id;
public OrderDetail() {
}
public OrderDetail (Integer ProductId,Product product,Integer productQuantity,BigDecimal price, Order order) {
this.price= price;
this.product_id = ProductId;
this.product = product;
this.quantity = productQuantity;
this.order = order;
}
public OrderDetail(Product product1) {
product_id = product1.getCategoryId();
price = product1.getPrice();
quantity = 1;
product = product1;
}
public int getId() {
return this.id;
}
public void setId(int id) {
this.id = id;
}
public BigDecimal getPrice() {
return this.price;
}
public void setPrice(BigDecimal price) {
this.price = price;
}
public int getQuantity() {
return this.quantity;
}
public void setQuantity(int quantity) {
this.quantity = quantity;
}
public Order getOrder() {
return this.order;
}
public void setOrder(Order order) {
this.order = order;
}
public Product getProduct() {
return this.product;
}
public void setProduct(Product product) {
this.product = product;
}
public int getProduct_id() {
return product_id;
}
public void setProduct_id(int product_id) {
this.product_id = product_id;
}
}
package eshop;
import java.io.Serializable;
import javax.persistence.*;
import java.math.BigDecimal;
/**
* The persistent class for the products database table.
*
*/
@Entity
@Table(name="products")
public class Product implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name="product_id")
private int productId;
@Column(name="category_id")
private int categoryId;
@Lob
private String descr;
private BigDecimal price;
@Column(name="product_name")
private String productName;
private int quantity;
public Product() {
}
public int getProductId() {
return this.productId;
}
public void setProductId(int productId) {
this.productId = productId;
}
public int getCategoryId() {
return this.categoryId;
}
public void setCategoryId(int categoryId) {
this.categoryId = categoryId;
}
public String getDescr() {
return this.descr;
}
public void setDescr(String descr) {
this.descr = descr;
}
public BigDecimal getPrice() {
return this.price;
}
public void setPrice(BigDecimal price) {
this.price = price;
}
public String getProductName() {
return this.productName;
}
public void setProductName(String productName) {
this.productName = productName;
}
public int getQuantity() {
return this.quantity;
}
public void setQuantity(int quantity) {
this.quantity = quantity;
}
}