大魚
導航
BlogJava
首頁
新隨筆
聯系
聚合
管理
<
2009年10月
>
日
一
二
三
四
五
六
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
統計
隨筆 - 86
文章 - 0
評論 - 9
引用 - 0
常用鏈接
我的隨筆
我的評論
我的參與
最新評論
留言簿
(1)
給我留言
查看公開留言
查看私人留言
隨筆分類
eclipse(2)
(rss)
EJB(11)
(rss)
hibernate
(rss)
html(1)
(rss)
j2ee(5)
(rss)
j2se(18)
(rss)
javascript(5)
(rss)
JBOSS(4)
(rss)
JPA(3)
(rss)
JSF(5)
(rss)
jsp(5)
(rss)
oracle(6)
(rss)
richfaces(2)
(rss)
spring(2)
(rss)
uml
(rss)
unix(1)
(rss)
操作系統(3)
(rss)
軟件工程(13)
(rss)
隨筆檔案
2011年10月 (6)
2011年6月 (11)
2011年5月 (1)
2011年3月 (1)
2010年10月 (2)
2010年4月 (7)
2010年2月 (3)
2010年1月 (1)
2009年12月 (2)
2009年11月 (3)
2009年10月 (9)
2009年9月 (4)
2009年4月 (4)
2009年3月 (32)
收藏夾
JPA(2)
(rss)
圖表(1)
(rss)
搜索
最新評論
1.?re: JSF中隱藏A4J按鈕和普通按鈕的JS單擊事件
....
--12
2.?re: JSF中隱藏A4J按鈕和普通按鈕的JS單擊事件
lll
--12
3.?re: Java實現四則運算的解析收藏
2000+600/3-300*2+0.1 = 1599.9 ????
--lrklx
4.? org.hibernate.HibernateException: identifier of an instance of cn.com.sinosoft.ebusiness.online.sale.domain.GeProposal was altered from 8906909140472133 to 000260802402288
axxz
--csa
5.?re: 排序算法java版,速度排行:冒泡排序、簡單選擇排序、直接插入排序、折半插入排序、希爾排序、堆排序、歸并排序、快速排序
收藏了
--安多
閱讀排行榜
1.?org.hibernate.MappingException: Could not determine type for: java.util.Collection, for columns: [org.hibernate.mapping.Column(lineItems)](3685)
2.?如何寫詳細設計文檔(3208)
3.?EJB異常:identifier of an instance of net.model.entity.Role was altered from 2 to 0(2116)
4.?FineReport調用Oracle數據庫中的存儲過程需要兩步走(2009)
5.?排序算法java版,速度排行:冒泡排序、簡單選擇排序、直接插入排序、折半插入排序、希爾排序、堆排序、歸并排序、快速排序(1803)
評論排行榜
1.?JSF中隱藏A4J按鈕和普通按鈕的JS單擊事件(2)
2.?排序算法java版,速度排行:冒泡排序、簡單選擇排序、直接插入排序、折半插入排序、希爾排序、堆排序、歸并排序、快速排序 (1)
3.?linux 配置jdk(1)
4.?Java實現四則運算的解析收藏(1)
5.?在Eclipse中反編譯Class文件完全詳解(1)
ejb3筆記
hibernate_ejb3筆記
1、用MyEclipse通過連接到數據庫,可以生成Hibernate需要的POJO和對應的映射文件。但是我生成的hbm.xml有問題,會報錯"could not load an entity"。后來找到了元兇
<
class
name
=
"
hbm.pojo.Misuser
"
table
=
"
misuser
"
schema
=
"
informix
"
catalog
="
zzymis"
>
把catalog="zzymis"去掉就OK了。
2、Hibrenate保存數據失敗
如果忘記提交事務會導致數據保存或者更新失敗,正確代碼如下:
HibernateSessionFactory. getSession().beginTransaction();
new
hbm.pojo.StudySubjectDAO().merge(subject);
HibernateSessionFactory. getSession().flush();
HibernateSessionFactory. getSession().getTransaction().commit();
3、Hibernate一對多的配置
最好使用雙向關聯(假設Main
->
Detail)
1
)Main.java中加入:
private
Set
<
Detail
>
detail
=
new
HashSet();
然后加入get()和set()方法;
2
)Detail.java中加入:
private
Main main;
然后加入get()和set()方法;另外別忘了重寫equals()方法
public
boolean
equals(Object object)
{
if
(object
==
null
||
!
this
.getClass().equals(object.getClass()))
{
return
false
;
}
Detail other
=
(Detail)object;
if
(other.id
==
null
||
this
.id
==
null
)
return
false
;
if
(
this
.id
!=
other.id
&&
(
this
.id
==
null
||
!
this
.id.equals(other.id)))
return
false
;
return
true
;
}
3
)Main.hbm.xml中加入:
<
set name
=
"
detail
"
inverse
=
"
true
"
cascade
=
"
all
"
>
<
key column
=
"
mainId
"
></
key
>
<
one
-
to
-
many
class
=
"
Detail
"
/>
</
set
>
4
)Detail.hbm.xml中加入:
<
many
-
to
-
one name
=
"
main
"
class
=
"
Main
"
column
=
"
mainId
"
>
</
many
-
to
-
one
>
同時把mainId對應的
<
property
>
……
</
property
>
刪掉
5
)操作:
雙向設置:(調用setMain()setDetail())
4、EJB中的getSingleResult()方法
查找返回一個結果,是唯一的一個結果,當getSingleResult()個方法被調用時執行查詢。如果沒有結果返回,這個方法將會拋出javax.persistence.EntityNotFoundException運行異常.如果找到多于一個結果, javax.persistence.NonUniqueResultException異常將會在運行期間拋出.因為這兩個異常都是RuntimeException,例子中的代碼不需要完整的try/catch塊。
5、Hibernate3的解決中文查詢問題
如果直接把查詢的參數放到sql語句中是查不出來的,比如:
Query query
=
em.createQuery("
select
u
from
User
u
where
u.name
like
'
%"+myName+"%
'
");
可以使用占位符或者設置參數的方法來查詢,例如:
1
)Query query
=
em.createQuery("
select
u
from
User
u
where
u.name
like
? ");
query.setString(
0
,"
%
"
+
myName
+
"
%
");
2
)Query query
=
em.createQuery("
select
u
from
User
u
where
u.name
like
:name");
query.setString("name","
%
"
+
myName
+
"
%
");
6、Like的其他用法(正則)
like
'
_heryl
'
:搜索以字母 heryl 結尾的所有六個字母的名稱(如 Cheryl、Sheryl)。
like
'
[CK]ars[eo]n
'
:搜索下列字符串:Carsen、Karsen、Carson 和 Karson(如 Carson)。
like
'
[M-Z]inger
'
:搜索以字符串 inger 結尾、以從M到Z的任何單個字母開頭的所有名稱如 。
like
'
M[^c]%
'
:搜索以字母 M 開頭,并且第二個字母不是 c 的所有名稱(如 MacFeather)。
7、一對多(one-to-many)刪除不掉
比如Main-to-Detail是one-to-many關系,在新增的時候可以通過persistMain()同時把多個Detail插入數據庫,但是如果想刪除某個Main中的某幾個Detail時,好像通過mergeMain()是無法做到的,通過mergeMain()可以更新Main的屬性,但是沒辦法刪除相應的Detail,至少我是沒辦法做到。這時,我一半都是寫個方法單獨來刪除Detail,例如deleteDetailById()來一個個刪除。
8、查詢返回多個實體Bean
1
)查詢(省略后的代碼)
@PersistenceContext(unitName
=
"
crm
"
)
private
EntityManager em;
public
List getUserinfoTrace(){
return
em.createQuery(
"
select new List(u,t) from Userinfo u,Trace t where u.id=t.id
"
).getResultList();
}
2
)讀取(省略后的代碼)
List
<
List
>
result
=
(List
<
List
>
)remote.getUserinfoTrace();
for
(List obj:result){
Userinfo userinfo
=
(Userinfo)result.get(
0
);
Trace trace
=
(Trace)result.get(
1
);
……
}
9、設置ID自增
在用netbean生成的實體Bean后,需要手工加上自增注釋(@GeneratedValue(strategy
=
GenerationType.AUTO)
)
例如:
@Id
@Column(name
=
"
id
"
, nullable
=
false
)
@GeneratedValue(strategy
=
GenerationType.AUTO)
private
Integer id;
10、failed to lazily initialize a collection of role
因為延遲加載導致的,但是我在EntityBean中使用fetch=FetchType.EAGER和FetchType.LAZY都無效,我的EntityBean是@OneToMany,最后只有在SessionBean的讀取EntityBean的方法中加入:
if
(main.getDetails()
!=
null
)
main.getDetails().size();
return
main;
這樣總算解決問題。
posted on 2009-10-20 12:34
大魚
閱讀(222)
評論(0)
編輯
收藏
所屬分類:
EJB
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
網站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
相關文章:
ejb3筆記
EJB3 QL查詢
EJB調用存儲過程
EJB3常見異常及解決
org.hibernate.MappingException: Could not determine type for: java.util.Collection, for columns: [org.hibernate.mapping.Column(lineItems)]
EJB異常:Cannot instantiate class:org.jnp.interfaces.NamingContextFactory
EJB異常:Collection has neither generic type or OneToMany.targetEntity() defined:
EJB3.x:部署(卸載)EntityBean時自動創建(刪除)表結構
EJB異常:identifier of an instance of net.model.entity.Role was altered from 2 to 0
EJB3.x:關于@UniqueConstraint標記中的columnNames屬性
Powered by:
BlogJava
Copyright © 大魚
主站蜘蛛池模板:
大地资源网高清在线观看免费
|
www免费黄色网
|
色五月五月丁香亚洲综合网
|
亚洲最大无码中文字幕
|
亚洲区视频在线观看
|
亚洲国产中文在线视频
|
亚洲情A成黄在线观看动漫软件
|
亚洲国语在线视频手机在线
|
亚洲另类自拍丝袜第1页
|
亚洲综合色丁香麻豆
|
亚洲成人黄色网址
|
ass亚洲**毛茸茸pics
|
亚洲男人天堂2022
|
亚洲av综合av一区二区三区
|
久久久无码精品亚洲日韩按摩
|
亚洲人成在久久综合网站
|
亚洲婷婷综合色高清在线
|
午夜在线a亚洲v天堂网2019
|
久久久久久国产精品免费免费男同
|
国产精品成人免费综合
|
免费国产a国产片高清
|
亚洲一区二区高清
|
亚洲大成色www永久网站
|
久久精品国产亚洲AV高清热
|
亚洲短视频在线观看
|
亚洲一区二区三区丝袜
|
日韩亚洲综合精品国产
|
sss在线观看免费高清
|
久久精品国产免费
|
国产精品久久永久免费
|
日韩精品视频免费观看
|
亚洲精品视频免费观看
|
亚洲成AV人在线播放无码
|
亚洲手机中文字幕
|
亚洲av无码专区在线电影
|
国产成人精品免费视频大全
|
91成人在线免费观看
|
无码人妻精品一二三区免费
|
2021国内精品久久久久精免费
|
成人免费视频77777
|
免费看一级做a爰片久久
|