/*
 * Copyright 2016-2018 shardingsphere.io.
 * <p>
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * </p>
 */

package io.shardingsphere.example.repository.jpa.service;

import io.shardingsphere.example.repository.jpa.entity.OrderItem;
import io.shardingsphere.example.repository.jpa.entity.Order;
import io.shardingsphere.example.repository.jpa.repository.OrderItemRepository;
import io.shardingsphere.example.repository.jpa.repository.OrderRepository;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;

@Service
public class DemoService {
    
    @Resource
    private OrderRepository orderRepository;
    
    @Resource
    private OrderItemRepository orderItemRepository;
    
    public void demo() {
        orderRepository.createIfNotExistsTable();
        orderItemRepository.createIfNotExistsTable();
        orderRepository.truncateTable();
        orderItemRepository.truncateTable();
        List<Long> orderIds = new ArrayList<>(10);
        System.out.println("1.Insert--------------");
        for (int i = 0; i < 10; i++) {
            Order order = new Order();
            order.setUserId(51);
            order.setStatus("INSERT_TEST");
            orderRepository.insert(order);
            long orderId = order.getOrderId();
            orderIds.add(orderId);
            
            OrderItem item = new OrderItem();
            item.setOrderId(orderId);
            item.setUserId(51);
            item.setStatus("INSERT_TEST");
            orderItemRepository.insert(item);
        }
        System.out.println("Order Data--------------");
        System.out.println(orderRepository.selectAll());
        System.out.println("OrderItem Data--------------");
        System.out.println(orderItemRepository.selectAll());
        System.out.println("2.Delete--------------");
        for (Long each : orderIds) {
            orderRepository.delete(each);
            orderItemRepository.delete(each);
        }
        System.out.println("Order Data--------------");
        System.out.println(orderRepository.selectAll());
        System.out.println("OrderItem Data--------------");
        System.out.println(orderItemRepository.selectAll());
        orderItemRepository.dropTable();
        orderRepository.dropTable();
    }
}

@@ -727,25 +727,24 @@
 .entity.
+JPA
 Order
-Item
 ;%0Aimport
@@ -792,21 +792,28 @@
 .entity.
+JPA
 Order
+Item
 ;%0Aimport
@@ -1302,198 +1302,8 @@
 ) %7B%0A
-        orderRepository.createIfNotExistsTable();%0A        orderItemRepository.createIfNotExistsTable();%0A        orderRepository.truncateTable();%0A        orderItemRepository.truncateTable();%0A
     
@@ -1458,15 +1458,21 @@
     
+JPA
 Order 
-o
+JPAO
 rder
@@ -1474,24 +1474,27 @@
 Order = new 
+JPA
 Order();%0A   
@@ -1494,33 +1494,36 @@
 ();%0A            
-o
+JPAO
 rder.setUserId(5
@@ -1534,25 +1534,28 @@
             
-o
+JPAO
 rder.setStat
@@ -1608,17 +1608,20 @@
 .insert(
-o
+JPAO
 rder);%0A 
@@ -1646,17 +1646,20 @@
 derId = 
-o
+JPAO
 rder.get
@@ -1729,16 +1729,19 @@
         
+JPA
 OrderIte
@@ -1753,16 +1753,19 @@
 m = new 
+JPA
 OrderIte
@@ -1958,32 +1958,35 @@
 em.out.println(%22
+JPA
 Order Data------
@@ -2074,32 +2074,35 @@
 em.out.println(%22
+JPA
 OrderItem Data--
@@ -2391,24 +2391,27 @@
 ut.println(%22
+JPA
 Order Data--
@@ -2511,16 +2511,19 @@
 rintln(%22
+JPA
 OrderIte

USE JPAOrder