JPA第二天
今天JPA的第二天,繼續學習關聯,還有分頁,設置參數,單值檢索等重點,下午是EJB的介紹,實現。這其中足見老師水平之高,經驗太豐富了。好 ,作總結:
1. 多對一單向關聯
2.一對多
@OneToMany(mappedBy=””) 忽略關聯關系
mappedBy讓對端忽略關系的變化,相當于HibernateSet集合中的inverse,緩存就不再負責set的
em.find(Order.class,1);默認迫左/延遲
3.一對一外鍵關聯
<many-to-one name=”addr” column=”aid” class=”Addr” unique=”true”/>
<one-to-one name=”” column=”” property-ref=”addr”/>
JPA中的實現
@OneToOne[觀察自動創建出來的表結構]
class User{
@OneToOne
protected Addr addr;
class Addr{
@OneToOne(mappedBy=“addr", optional="false");
protected User user;
}
mappedBy:控制權問題
optional:false 表示沒有用戶的BillingInfo是不能單獨存在的.
4.多對多
@ManyToMany
@ManyToMany
protected Set<Student> students;
@ManyToMany(mappedBy=“students")
protected Set<Teacher> teachers;
5.繼承關系
以Employee為例
Employee{id name age}
HourEmployee(HE){rate} SalaryEmployee(SE){salary}
映射繼承關系樹:整個繼承關系樹對應一張表
游離,臨時,持久 詳解:
1.位于一個session緩存中,總是被一個
session關聯。
2.持久化對象和數據庫記錄相對應。
3.清理緩存時,會根據對象屬性變化,同步
更新數據庫。
4.save把臨時對象轉變為持久化對象。
5.load或find或get返回的對象總是持久化狀態。
6.find方法返回的list存放的都是持久化對象。
7.update、save、SaveOrUpdate和Lock方法使游離對象裝變
為持久化對象。
6、分頁:
("findCustomerByName");
query.setParameter("name", "t,om");
query.setMaxResults(10);
query.setFirstResult(3); query = em.createNamedQuery
List customers = query.getResultList();
7、設置參數:
SELECT o FROM Order i WHERE i.orderNo = ?1
query.setParameter(1, 100.00);
SELECT o FROM Order i WHERE o.price = :price
query.setParameter("price", 100.00);
8.單個實體檢索
query.getSingleResult();
9.
查詢集合:
WHERE c.orders IS EMPTY
WHERE CONCAT(c.fname, c.lname) = 't,om'
SELECT c.id, c.name FROM Customer c
10.多態查詢
SELECT c FROM Customer c WHERE c.name LIKE :name
11.分組
SELECT o.customer, COUNT(o.id) FROM Order o
GROUP BY o.customer
12.排序
order by
13.子查詢
SELECT o FROM Order I WHERE o.customer IN
(SELECT c FROM Customer c WHERE c.name LIKE ?1)
EJB
1.ejb簡介:enterprise java bean就是開發分布式組件的。in
ejb容器具有負載均衡 容 錯 線程池 安全 高并發性等功 能。
EJB = pojo + @
spring:業務層 管理bean的,容器key-value.沒有ejb的java ee
j2ee : 開發分布式企業級應用的規范(jsp servlet jpa ejb)
2.開發EJB步驟:
1.下載安裝jboss
2.配置環境變量:
JBOSS_HOME JBOSS安裝目錄
3.web服務器端口(${jboss_home}"server"default"deploy"jboss-web.deployer"server.xml)[22行]
4.啟動。${jboss_home}"bin"run.bat
IDE中配置服務器:
windows/首選項/myeclipse/servers/jboss/4.x/運行模式(非調式模式) + jdk1.5.
5.啟動服務器,進入管理頁面.http://localhost:8088/
點擊[JMX Console]超鏈接
點擊Jboss/service=JNDIView
ok.
今天就OK了!