?? entityinheritancedaobean.java
字號:
package com.foshanshop.ejb3.impl;
import java.util.List;
import javax.ejb.Remote;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
import com.foshanshop.ejb3.EntityInheritanceDAO;
import com.foshanshop.ejb3.bean.Car;
import com.foshanshop.ejb3.bean.Vehicle;
import com.foshanshop.ejb3.bean.Camion;
@Stateless
@Remote ({EntityInheritanceDAO.class})
public class EntityInheritanceDAOBean implements EntityInheritanceDAO {
@PersistenceContext
protected EntityManager em;
public void initializeData(){
//添加Vehicle
Vehicle vehicle = new Vehicle();
vehicle.setSpeed((short)100);
em.persist(vehicle);
//添加Car
Car car = new Car();
car.setSpeed((short)300);
car.setEngine("A發動機");
em.persist(car);
//添加Camion
Camion camion = new Camion();
camion.setSpeed((short)200);
camion.setEngine("B發動機");
camion.setContainer("2噸集裝箱");
em.persist(camion);
}
public Vehicle getLastVehicle() {
//查詢所有Vehicle時,因為他是最繼承樹中的根,查詢結果會得到所有繼承于Vehicle類的記錄
//轉繹成的SQL片斷:select * from Vehicle_Hierarchy
Query query = em.createQuery("from Vehicle v");
List result = query.getResultList();
if (result!=null && result.size()>0)
return (Vehicle)result.get(result.size()-1);
return null;
}
public Car getLastCar() {
//查詢所有Car時,除了得到Car類的記錄,也會得到所有繼承于Car類的記錄
//構造的SQL Where部分:where Discriminator in ('Car', 'Camion')
Query query = em.createQuery("from Car c");
List result = query.getResultList();
if (result!=null && result.size()>0)
return (Car)result.get(result.size()-1);
return null;
}
public Camion getLastCamion() {
Query query = em.createQuery("from Camion c");
List result = query.getResultList();
if (result!=null && result.size()>0)
return (Camion)result.get(result.size()-1);
return null;
}
public void deleteVehicle() {
//執行該操作會刪除自身對應記錄,還會刪除所有繼承Vehicle的記錄,
//因為他是最繼承樹中的根,就相當于清除整個表的數據
Query query = em.createQuery("delete from Vehicle v");
query.executeUpdate();
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -