摘要: 非實(shí)體的基類映射
最近我們都說了很多繼承方面的映射策略,可是有時(shí)候我們卻需要繼承一個(gè)非實(shí)體的類,這個(gè)類存在于我們的工程項(xiàng)目中,但是我們又不希望它成為一個(gè)實(shí)體類,這個(gè)時(shí)候怎么辦呢?這個(gè)時(shí)候我們可以用@javax.persistence.MappedSuperclass來(lái)注釋它,我們現(xiàn)在就修改一下我們前幾天的例子,把Person類定義成一個(gè)不持久化的類。代碼如下:
閱讀全文
摘要: 繼承映射策略之----每個(gè)子類一張表
在每個(gè)子類一張表的映射策略中,每一個(gè)子類都有一張屬于自己的表,但是這張表只包括了定義在這個(gè)子類上面的屬性而已,定義在它的父類的屬性它的表里面是沒有的,所以這樣的方式映射的話,就不會(huì)浪費(fèi)一點(diǎn)資源了,每一張表,每一列都是不可少的,也不會(huì)出現(xiàn)冗余。這種格式是有點(diǎn)像TABLE_PER_CLASS的策略,只不過這種方案是規(guī)范的,沒有像TABLE_PER_CLASS一樣重復(fù)定義列,在這里我們叫它JOINED策略。
按我們的例子,這種策略映射出來(lái)的話,數(shù)據(jù)庫(kù)的結(jié)構(gòu)將如下所示:
閱讀全文
摘要: 繼承映射策略之----每個(gè)具體類一張表
昨天我們看了繼承關(guān)系中的實(shí)現(xiàn),昨天是用一張表保存所有級(jí)別的類,今天我們來(lái)了解一下第二種實(shí)現(xiàn)方法,每一個(gè)類一個(gè)單獨(dú)的表的實(shí)現(xiàn),在數(shù)據(jù)庫(kù)我們的例子表現(xiàn)如下:
閱讀全文
摘要: 【簡(jiǎn)介】
《滕王閣序》全稱《秋日登洪府滕王閣餞別序》。一名《滕王閣詩(shī)序》。駢文篇名。唐王勃作。滕王閣在今江西省南昌市贛江濱。唐始建,后閻伯嶼為洪州牧,宴群僚于閣上,王勃省父過此,即席而作。文中鋪敘滕王閣一帶形勢(shì)景色和宴會(huì)盛況,抒發(fā)作者“無(wú)路請(qǐng)纓”的感慨。對(duì)仗工整,言語(yǔ)華麗。
閱讀全文
摘要: 單個(gè)實(shí)體BEAN的映射到數(shù)據(jù)庫(kù)的方式很簡(jiǎn)單,但是如果我們的實(shí)體BEAN之間存在著繼承關(guān)系呢?在數(shù)據(jù)庫(kù)里面將如何表現(xiàn)這種繼承關(guān)系?
JAVA持久化規(guī)范里面提供了三種方式去處理繼承實(shí)體的映射方式:
一,所有繼承層次共單獨(dú)一張表
二,每個(gè)具體的類一個(gè)單獨(dú)的表
三,每個(gè)子類一張表
為了更好的舉例說明,我們構(gòu)造出如下的繼承層次,以做為例子使用。
閱讀全文
摘要: 今天在利用JAVA3D播放聲音的時(shí)候,碰到一個(gè)很奇怪的問題,那就是聲音設(shè)備無(wú)法初始化。它拋出如下異常:
java.lang.UnsupportedOperationException: No AudioDevice specified
但是教程上面包括SUN的例子里面都是這樣寫的,他那樣寫肯定有它的道理,他不可能寫一個(gè)錯(cuò)誤的代碼吧?那心里就納悶了,為什么我的電腦就是播放不了呢,難道又像播放MIDI一樣,因?yàn)檠b了JMF的原因?我把JMF也缷了,電腦也重啟了,還是不行,該不會(huì)是人品問題吧:(
后來(lái)查看錯(cuò)誤的調(diào)用順序,發(fā)現(xiàn)是這句話拋出了異常:
閱讀全文
摘要: JAVA3D之HelloWorld
很早就聽說了JAVA3D,可惜一直都沒有去看,那個(gè)時(shí)候JAVA3D還是1.4是最新版,轉(zhuǎn)眼一年多過去了,JAVA3D都到了1.5.1版了,在感慨時(shí)間易逝的同時(shí)也不免對(duì)自己沒有努力而感到嘆息。現(xiàn)在又重新拾起對(duì)JAVA3D的激情與希望,希望在以后的日子里,少一些虛度,多一份充實(shí),與大家互勉。
對(duì)于有JAVA基礎(chǔ)的人來(lái)說,學(xué)習(xí)JAVA3D并不會(huì)很困難,一般來(lái)說涉及到3D都是比較底層的東西了,但是JAVA3D卻把它抽象的非常好,很符合面向?qū)ο蟮乃季S,并且JAVA優(yōu)秀的架構(gòu)也使JAVA3D更加強(qiáng)大。我們還是先來(lái)看代碼吧,看了代碼才好講話:
閱讀全文
摘要: 實(shí)體之間的級(jí)聯(lián)關(guān)系
我們?cè)谝郧暗钠叻N關(guān)系映射中經(jīng)常會(huì)在注釋中看到如下方法:cascade(),它表示級(jí)聯(lián),也就是有關(guān)聯(lián)的一些實(shí)體,當(dāng)我們對(duì)其中的一些進(jìn)行操作的時(shí)候,與它相關(guān)聯(lián)的實(shí)體應(yīng)該怎么辦。這樣時(shí)候,就需要我們定義cascade的屬性了,cascade一共有五種屬性,我們可以用其中的一種,也可以用其中的多種混合,其中可用的屬性如下:
閱讀全文
摘要: 使用VC,VB或者C#的開發(fā)者們對(duì)于在程序里面嵌入一個(gè)網(wǎng)頁(yè)來(lái)說,那真是小事一樁。但是在JAVA里面,卻幾乎是不可能實(shí)現(xiàn)的任務(wù)。JEditorPane雖然說可以打開網(wǎng)頁(yè),但是它那解析速度以及解析質(zhì)量,對(duì)于今天日益復(fù)雜的網(wǎng)頁(yè)內(nèi)容來(lái)說,就像沒有一樣。今天我們就使用一個(gè)開源的組件(jdic)來(lái)實(shí)現(xiàn)在JAVA程序里面嵌入網(wǎng)頁(yè)的效率,運(yùn)行界面如下:
閱讀全文
摘要: EJB中的集合映射
我們?cè)谇懊娴囊粚?duì)多以及多對(duì)多的情況可以看到,我們會(huì)需要對(duì)集合進(jìn)行映射,對(duì)于基于List的映射我們?cè)谇懊嬉呀?jīng)看過了。但是如果我們想對(duì)Map進(jìn)映射呢,那該怎么辦?
閱讀全文