⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 client1.java

📁 This book shows you how to use JBoss to develop EJB projects.
💻 JAVA
字号:
package com.titan.clients;

import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityManager;
import javax.persistence.EntityTransaction;
import javax.persistence.Persistence;

import com.titan.domain.*;

public class Client1
{
   public static void main(String[] args) throws Exception 
   {
      EntityManagerFactory factory =
         Persistence.createEntityManagerFactory("titan");
      try 
      {
         Customer cust = createCustomerAddress(factory);
         cascadeMergeAddress(factory, cust);
         cascadeRemoveAddress(factory, cust);
      } 
      finally 
      {
         factory.close();
      }
   }

   public static Customer createCustomerAddress(EntityManagerFactory factory)
   {
      System.out.println("Create 1st Customer");
      Customer cust = new Customer();
      cust.setFirstName("Bill");
      cust.setLastName("Burke");
      Address address = new Address();
      address.setStreet("Beacon Street");
      address.setCity("Boston");
      address.setState("MA");
      address.setZip("02115");
      cust.setAddress(address);
      EntityManager manager = factory.createEntityManager();
      try
      {
         manager.getTransaction().begin();
         manager.persist(cust);
         manager.getTransaction().commit();
      }
      finally
      {
         manager.close();
      }
      System.out.println("Address was also persisted with auto-generated key: " 
                         + address.getId());
      System.out.println("Return detached Customer instance: " + cust.getId());
      return cust;
   }

   public static void cascadeMergeAddress(EntityManagerFactory factory, Customer cust)
   {
      System.out.println("Show cascade merge()");
      cust.getAddress().setStreet("1 Yawkey Way");

      EntityManager manager = factory.createEntityManager();
      try
      {
         manager.getTransaction().begin();
         manager.merge(cust);
         manager.getTransaction().commit();

         manager.clear();
         Customer custCopy = manager.find(Customer.class, cust.getId());
         System.out.println(custCopy.getAddress().getStreet());
      }
      finally
      {
         manager.close();
      }
   }

   public static void cascadeRemoveAddress(EntityManagerFactory factory, Customer cust)
   {
      System.out.println("Show cascade remove()");
      EntityManager manager = factory.createEntityManager();

      try
      {
         manager.getTransaction().begin();
         Customer custCopy = manager.find(Customer.class, cust.getId());
         manager.remove(custCopy);
         manager.getTransaction().commit();
         
         Address addressCopy = manager.find(Address.class, cust.getAddress().getId());
         System.out.println("addressCopy is null: " + addressCopy);
      }
      finally
      {
         manager.close();
      }
   }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -