Вставка данных в базу данных с использованием ошибки выдачи jpa - PullRequest
0 голосов
/ 03 ноября 2019

Я новичок в мире JPA. Здесь я попытался сделать простое POS. Проблема состоит в том, что, когда в таблицах нет предопределенного значения, хотя ПК автоматически увеличивается, данные не вставляются в БД. Но если я добавлю в таблицы предопределенную строку, проблем не будет, и данные будут успешно вставлены. Помогите мне, пожалуйста.

Ниже приведены мои классы Java, и я использую Mysql для БД.

@Entity  
@Table(name = "card_payment")
public class Card_payment {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
int id;

@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "order_id")
private Orders order;

@Column(name = "issuing_bank")
String issuing_bank;

@Column(name = "card_type")
String card_type;

@Column(name = "card_expiry_date")
String card_expiry_date;

@Column(name = "amount")
int amount;


public Card_payment() {
    super();
}
public Orders getOrder() {
    return order;
}
public void setOrder(Orders order) {
    this.order = order;
}
public int getId() {
    return id;
}
public void setId(int id) {
    this.id = id;
}

public String getIssuing_bank() {
    return issuing_bank;
}
public void setIssuing_bank(String issuing_bank) {
    this.issuing_bank = issuing_bank;
}
public String getCard_type() {
    return card_type;
}
public void setCard_type(String card_type) {
    this.card_type = card_type;
}
public String getCard_expiry_date() {
    return card_expiry_date;
}
public void setCard_expiry_date(String card_expiry_date) {
    this.card_expiry_date = card_expiry_date;
}
public int getAmount() {
    return amount;
}
public void setAmount(int amount) {
    this.amount = amount;
}

}




@Entity  
@Table(name = "customer")
public class Customer {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
int id;

@Column(name = "name")
String name;

@Column(name = "mobile_no")
long mobile_no;

@Column(name = "address")
String address;

@OneToMany(mappedBy = "customer", cascade = CascadeType.ALL,
        fetch=FetchType.LAZY)  
private List<Orders> orders;;



public Customer() {
    super();
}

public List<Orders> getOrders() {
    return orders;
}
public void setOrders(List<Orders> orders) {
    this.orders = orders;
}
public int getId() {
    return id;
}
public void setId(int id) {
    this.id = id;
}
public String getName() {
    return name;
}
public void setName(String name) {
    this.name = name;
}
public long getMobile_no() {
    return mobile_no;
}
public void setMobile_no(long mobile_no) {
    this.mobile_no = mobile_no;
}
public String getAddress() {
    return address;
}
public void setAddress(String address) {
    this.address = address;
}


}



@Entity  
@Table(name = "Item")
public class Item {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
int id;

@Column(name = "name")
String name;

@Column(name = "unit")
String unit;

@Column(name = "stock_quantity")
int stock_quantity;

@Column(name = "reorder_level")
int reorder_level;

@Column(name = "unit_price")
int unit_price;

@Column(name = "tax_percentage")
float tax_percentage;

@OneToMany(mappedBy = "item", cascade = CascadeType.ALL,
        fetch=FetchType.LAZY)  
private List<Orderline> orderLines;


public Item() {
    super();
}

public List<Orderline> getOrderLines() {
    return orderLines;
}

public void setOrderLines(List<Orderline> orderLines) {
    this.orderLines = orderLines;
}

public int getId() {
    return id;
}
public void setId(int id) {
    this.id = id;
}
public String getName() {
    return name;
}
public void setName(String name) {
    this.name = name;
}
public String getUnit() {
    return unit;
}
public void setUnit(String unit) {
    this.unit = unit;
}
public int getStock_quantity() {
    return stock_quantity;
}
public void setStock_quantity(int stock_quantity) {
    this.stock_quantity = stock_quantity;
}
public int getReorder_level() {
    return reorder_level;
}
public void setReorder_level(int reorder_level) {
    this.reorder_level = reorder_level;
}
public int getUnit_price() {
    return unit_price;
}
public void setUnit_price(int unit_price) {
    this.unit_price = unit_price;
}
public float getTax_percentage() {
    return tax_percentage;
}
public void setTax_percentage(float tax_percentage) {
    this.tax_percentage = tax_percentage;
}



}




@Entity  
@Table(name = "OrderLine")
public class Orderline {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
int id;

@ManyToOne
@JoinColumn(name = "itemId")
private Item item;

@ManyToOne
@JoinColumn(name = "orderId")
private Orders orders;

@Column(name = "unit_cost")
float unit_cost;

@Column(name = "unit")
int unit;

@Column(name = "tax_percentage")
float tax_percentage;

@Column(name = "quantity")
int quantity;

@Column(name = "amount")
int amount;

@Column(name = "tax_amount")
float tax_amount;

@Column(name = "line_total")
int line_total;


public Orderline() {
    super();
}


public Item getItem() {
    return item;
}


public void setItem(Item item) {
    this.item = item;
}


public Orders getOrders() {
    return orders;
}
public void setOrders(Orders orders) {
    this.orders = orders;
}
public int getId() {
    return id;
}
public void setId(int id) {
    this.id = id;
}


public float getUnit_cost() {
    return unit_cost;
}
public void setUnit_cost(float unit_cost) {
    this.unit_cost = unit_cost;
}
public int getUnit() {
    return unit;
}
public void setUnit(int unit) {
    this.unit = unit;
}
public float getTax_percentage() {
    return tax_percentage;
}
public void setTax_percentage(float tax_percentage) {
    this.tax_percentage = tax_percentage;
}
public int getQuantity() {
    return quantity;
}
public void setQuantity(int quantity) {
    this.quantity = quantity;
}
public int getAmount() {
    return amount;
}
public void setAmount(int amount) {
    this.amount = amount;
}
public float getTax_amount() {
    return tax_amount;
}
public void setTax_amount(float tax_amount) {
    this.tax_amount = tax_amount;
}
public int getLine_total() {
    return line_total;
}
public void setLine_total(int line_total) {
    this.line_total = line_total;
}




    @Entity  
@Table(name = "orders")
public class Orders {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
int id;

@ManyToOne
@JoinColumn(name = "customerId")
private Customer customer;

@Column(name = "order_date")
String order_date;

@Column(name = "delivery_address")
String delivery_address;

@Column(name = "total")
long total;

@OneToMany(mappedBy = "orders", cascade = CascadeType.ALL,
        fetch=FetchType.LAZY)  
private List<Orderline> orderlines;

@OneToOne(mappedBy = "order")
private Cash_payment cash_payment;

@OneToOne(mappedBy = "order")
private Card_payment card_payment;


@OneToOne(mappedBy = "order")
private Cheque_payment cheque_payment;


public Orders() {
    super();
}


public Cash_payment getCash_payment() {
    return cash_payment;
}


public void setCash_payment(Cash_payment cash_payment) {
    this.cash_payment = cash_payment;
}


public Card_payment getCard_payment() {
    return card_payment;
}


public void setCard_payment(Card_payment card_payment) {
    this.card_payment = card_payment;
}


public Cheque_payment getCheque_payment() {
    return cheque_payment;
}


public void setCheque_payment(Cheque_payment cheque_payment) {
    this.cheque_payment = cheque_payment;
}


public List<Orderline> getOrderlines() {
    return orderlines;
}


public void setOrderlines(List<Orderline> orderlines) {
    this.orderlines = orderlines;
}


public Customer getCustomer() {
    return customer;
}
public void setCustomer(Customer customer) {
    this.customer = customer;
}
public int getId() {
    return id;
}
public void setId(int id) {
    this.id = id;
}
public String getOrder_date() {
    return order_date;
}
public void setOrder_date(String order_date) {
    this.order_date = order_date;
}

public String getDelivery_address() {
    return delivery_address;
}
public void setDelivery_address(String delivery_address) {
    this.delivery_address = delivery_address;
}
public long getTotal() {
    return total;
}
public void setTotal(long total) {
    this.total = total;
}


}

public class JPAExample {

private static EntityManager entityManager = EntityManagerUtil.getEntityManager();

public static void main(String[] args) {

    JPAExample example = new JPAExample();

    entityManager.getTransaction().begin();

    Orders order = new Orders();
    order.setOrder_date("2019/05/05");
    order.setTotal(1000);
    order.setDelivery_address("kolkata");

    Item item = new Item();
    item.setName("cream");
    item.setReorder_level(10);
    item.setUnit_price(10);
    item.setUnit("kg");
    item.setTax_percentage((float) 12.5);
    item.setStock_quantity(20);
    item.setReorder_level(5);


    Orderline orderline = new Orderline();
    orderline.setAmount(1);
    orderline.setItem(item);
    orderline.setLine_total(200);
    orderline.setQuantity(1);

    List<Orderline> orderlns = new ArrayList<>();
    orderlns.add(orderline);
    item.setOrderLines(orderlns);


    Customer customer = new Customer();
    customer.setId(1234);
    customer.setName("Tanusha");
    customer.setMobile_no(Long.valueOf("9609"));
    customer.setAddress("u-86, garia");

    orderline.setOrders(order);

    List<Orderline> orderLinesList = new ArrayList<>();
    orderLinesList.add(orderline);
    order.setOrderlines(orderLinesList);


    order.setCustomer(customer);

    List<Orders> orderList = new ArrayList<>();
    orderList.add(order);
    customer.setOrders(orderList);


    Card_payment cp = new Card_payment();
    cp.setAmount(200);
    cp.setCard_expiry_date("2019/05/05");
    cp.setCard_type("visa");
    cp.setIssuing_bank("SBI");

    cp.setOrder(order);

    order.setCard_payment(cp);


    entityManager.merge(order);

    try {
        entityManager.getTransaction().commit();
    } catch (Exception e) {
        entityManager.getTransaction().rollback();
    }
}


}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...