版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
目錄
目錄10
——、JPA基礎(chǔ)02
1.1JPA基礎(chǔ)2°
1.2JPA開發(fā)過程........................................................3
1.3實(shí)體的生命周期及實(shí)體管理器常用方法。4
二、環(huán)境搭建5°
2.1添加JPA支持........................................................6
2.2添加配置文獻(xiàn)06
2.3測(cè)試配置6°
2.4環(huán)境搭建附表........................................錯(cuò)誤!未定義書簽。
三、常用注解.................................................................12
3.1批注完全參考120
3.2工D相關(guān)的..........................................錯(cuò)誤!未定義書簽。
3.3主鍵生成策略.......................................................13
3.4字段、添加字段、添加表關(guān)聯(lián)........................錯(cuò)誤!未定義書簽。
3.5映射相關(guān)14°
3.6其他14o
四、JPA映射.................................................................14
4.1一對(duì)一映射15°
4.1.1共享主鍵映射。15
4.1.2關(guān)聯(lián)外鍵映射...............................................17
4.1.3添加表關(guān)聯(lián)..................................................17
4.2—對(duì)多關(guān)聯(lián)18o
4.2.1添加字段的一對(duì)多、多對(duì)一關(guān)聯(lián)...............................18
4.2.2添加表的一對(duì)多、多對(duì)一關(guān)聯(lián)...................................19
4.3多對(duì)多關(guān)聯(lián).........................................................20
4.4繼承映射..............................................錯(cuò)誤!未定義書簽。
五、JPQL210
六、常見異常22。
一、JPA基礎(chǔ)
1.loJPA基礎(chǔ)
JPA:javapersisteneeapi0支持XML、JDK5.0注解倆種元數(shù)據(jù)的形式,是
SUN公司引入的JPAORM規(guī)范
元數(shù)據(jù):對(duì)象和表之間的映射關(guān)系
實(shí)體:entity,需要使用Javax.persistence.Entity注解或xmI映射,
需要無參構(gòu)造函數(shù),類和相關(guān)字段不能使用final關(guān)鍵字
。游離狀態(tài)實(shí)體以值方式進(jìn)行傳遞,需要serializable
JPA是一套規(guī)范、有很多框架支持(如Hibernate3.2以上、Top1ink,一般用H
ibernate就彳亍oracIe可以用toplink)
0
oJPQL
1、與數(shù)據(jù)庫無關(guān)的,基于實(shí)體的查詢語言
2、操作的是抽象持久化模型
。3、JPQL是一種強(qiáng)類型語言,一個(gè)JPQL語句中每個(gè)表達(dá)式都有類型,
。4、EJBQL的擴(kuò)展
。5、支持projection(可以查詢某個(gè)實(shí)體的字段而不需要查詢整個(gè)實(shí)體)、批量操作
(update\delete)、子查詢、join、groupbyhaving(groupby
聚合后having聚合函數(shù)比較條件)
弱類型語言:沒有明顯的類型、根據(jù)情況變化、容易犯錯(cuò)
。強(qiáng)類型語言:沒個(gè)變量都有固定的類型。不容易犯錯(cuò)
。雖然JPA規(guī)范中明確表達(dá)無法訪問一個(gè)集合關(guān)系字段
。抽象模型類型:JPQL規(guī)范將一個(gè)實(shí)體(屬性)中所飲食的各種類型稱為抽象模型類型
。。狀態(tài)字段
。。關(guān)聯(lián)字段
查詢多個(gè)字段查出來的是個(gè)對(duì)象值數(shù)組
1.2JPA開發(fā)過程
oJPA配置文獻(xiàn)聲明持久化單元>0配置文獻(xiàn)persistence.xml
編寫帶標(biāo)注的實(shí)體類
。編寫Dao類
xmI配置
0
事務(wù)類型分為:RESOURCE_LOCAL
本地事務(wù)、JTA(java事務(wù)AP工)
。注解
o@Entity將JavaBean標(biāo)注為一個(gè)實(shí)體name屬性
000Tableo數(shù)據(jù)庫中的表,name名稱、cataIog數(shù)據(jù)庫名@Sec。ndary
Table/?SecondaryTabies多個(gè)表
@Id定義了實(shí)體的主鍵信息
oo@GeneratedValue逐漸省城策略
oo@GeneratedValue(Strategy=Gene
rationType.SEQUENCE)
oo@SequenceGenerator(name="SEQ_TES
T”,sequenceName="User_SEQ”,allocationSize=25)
@coIumn°屬性、字段相應(yīng)的表字段
@Temp。ral0屬性是時(shí)間類型的話可以細(xì)分
0ooDATEoojava.sqI.Date
0TIMEojava.sql.Timeo
TIMESTAMPjava.sql.Timestamp
o@Lobo標(biāo)注CLOB、BLOB
@Base是否延遲加載@Base(fetch=FETCHTYPE.LAZY/F
ETCHTYPE.EAGER)
o@Transiento實(shí)體bean中,所有非static、非transient狀態(tài)變量、
字段都要被持久化
假如有字段、變量在數(shù)據(jù)庫中沒有相應(yīng),標(biāo)注為t
ransient就可以不被持久化
,標(biāo)注方式:標(biāo)注在字段上
°0°標(biāo)注在變量上
實(shí)體類寫法:
…1、必須有無參的構(gòu)造函數(shù)
°2、沒有final類型的變量或方法
°3、不可以是public類型的,只能通過get、set方法讀寫
0
管理實(shí)體
oPersistence
ooEntityManagerFactory
oEntityManager
ooPersistence.createEntityManagerFactory(persistenee.xml
中酉己置的persistenceunit').createEntityManager()獲取EntityMa
nager
1.3實(shí)體的生命周期及實(shí)體管理器常用方法
ooEntityManager聲明周期°Java對(duì)象。實(shí)體管理器
0oo數(shù)據(jù)庫
ooel、e新實(shí)體(new)oooe存在不存在
不存在OO0
o?2v持久化實(shí)體(managed)存在0o。存在000
存在
o3、分離的實(shí)體(detached)°不存在°o不存在e
o£>存在
oo4v刪除的實(shí)體(removed)o存在o0存在00
不存在
DOonew。0
oooo1persist()o
oofind()ooXocommit()、cIear()
oDBTTTTtomanagedoTTTTT
Tdetached
oooo1—merge()
000X000
oooooo1remove()
ooooremoved
常用方法
ool\persist(Object)oo0°持久化
0o2\remove(Object)ooooo?刪除對(duì)象
ot>3\find(ClassentityClass,Objectkey)o根據(jù)主鍵查詢
4xf1ush()oo
實(shí)體與底層同步,執(zhí)行sqI
oo?5%createQuery()°°創(chuàng)建JPQL查詢對(duì)象
oO5KCreateNativeQuery()°°°o根據(jù)普通SQL查詢
5\createNamedQuery()oooo命名查詢@NamedQ
uerie標(biāo)注°
oo5\merge(Object)oo將一個(gè)detached的實(shí)體持久化到
EntityManager中
oo5\close()oooo關(guān)閉管理器
javax.persistence.Queryooo
intexecuteUpdate()°執(zhí)行更新、冊(cè)U除、添力口
ObjectgetSingleResult()°執(zhí)行查詢(返回一條記錄)0
ListgetResultList()0°執(zhí)行查詢(返回結(jié)果鏈表)
QuerysetParameter(intposition,objectvalue)給Query
對(duì)象設(shè)立參數(shù)
QuerysetMaxResults(intmaxResuIt)oo給Query對(duì)象設(shè)立返回
數(shù)
QuerysetFirstResult(intfirstResuIt)o給Query對(duì)象設(shè)立返回偏
移
00
參數(shù)查詢(只能用一種)
oo命名參數(shù)查詢selectufromUserwhereid
=:uidn;oosetParameter("uid”,value);
000位置參數(shù)查詢
Personperson=em.find(Person.class,1);
//相稱于Hibernate的get
Personperson=em.getReference(Person.cIassf1);oo
//相稱于Hibernate的load返回一個(gè)代理對(duì)象
//注意延遲加載時(shí)的事務(wù)沒關(guān)閉的時(shí)候才好用
find假如找不到返回的是個(gè)nu11,這時(shí)候下面在調(diào)用null的方法報(bào)nuIIpoint
異常
reference相稱于延遲加載假如找不到,會(huì)在第一次使用就報(bào)EntityNotFound
異常
000
。?;卣{(diào)函數(shù)(相稱于攔截器,下面的方法執(zhí)行前后調(diào)用指定的方法)°°
oo@Prepersistoooo
oooo@PostPersist
oo@PreRemove
oo@PostRemove
oooo@PreUpdate
o?oo@PostUpdate
oooo@PostLoado0°載入實(shí)體時(shí)(find、查詢、refresh)
二、環(huán)境搭建
2.1添加JPA支持
1'準(zhǔn)備JPA用到的jar包(JPA支持包)
2、windowoTpreferencesTJava—BuildPath—UserL
ibraries
ooo->newUserLibrary
oTAddJars
3、項(xiàng)目o右鍵Tproperties(alt+Enter)
TJavaBuildPathTLibraries
ooTAddLibraryUserLibraryT自己定義的JPA支
持包
2.2添加配置文獻(xiàn)
01、項(xiàng)目中SRC目錄下添加META—INF目錄(與Web項(xiàng)目下META-INF同名)
o2v在新添力口的META—INF中添力口配置文獻(xiàn)persistences.xml
opersistence.xml配置信息(Hibernate)
。數(shù)據(jù)庫連接信息查詢
。重要配置信息:
0事務(wù)類型:本地事務(wù)、JTA事務(wù)
JPA供應(yīng)商
數(shù)據(jù)庫驅(qū)動(dòng)、URL、User、Password
3、在SRC目錄下添加log4j.properties文獻(xiàn)(顯示數(shù)據(jù)庫操作信息的)
2.3測(cè)試配置
I、MySQL測(cè)試數(shù)據(jù)庫
。2、實(shí)體注解
03、JUNIT測(cè)試方法
2.4環(huán)境搭建附表
persistence.xmI配置信息
<?xmlversion=nl.0"encoding=UUTF-8,r?>
<persistenceversion="1.0uxmlns=〃"xmlns:xsi=""xsi:sche
maLocation="://java.sun.com/xml/ns/persistence/persiste
nce_l_0.xsd”>
o<!--name="持久化單元命名"transaction-type="本地事務(wù)/JTA”-->
o<persistence—unitname=nJPA"transaction—type="RESOURC
E_LOCAL”〉
—供應(yīng)商-->
<provider>org.hibernate.ejb.HibernatePersisten
ce</provider>
0
0
o<properties>
°.<!—參數(shù):數(shù)據(jù)庫驅(qū)動(dòng)名、地址、用戶、密碼、方言、顯示執(zhí)行SQL語句
o<Propertyname="hibemate.connection,driver_clas
s"value=〃〃/〉
oo<propertyname=lfhibernate.connection.driver_class”val
ue=uorg.gJt.mm.mysQ1.Driver,r/>
oo<propertyname="hibemate,connection.url”va1ue="
jdbc:mysql://127.0.0,1:3306/JPAf1/>
oo<propertyname="hibernate.connection.username"
value="root"/>
oo<propertyname="hibernate.connection.password"value="
123456”/>
oo<propertyname=r,hibernate.dialect"value=,rorg.hibernat
e,dialect.MySQLDia1ectn/>
00<propertyname=nibemate.show_sql"value=,rtrue"/>
00
0a<!--其他設(shè)立一>
00Vpropertyname="minPoolSize"value="5"/>
oo<propertyname="initiaIPooISize"value="10"/>
oo<propertyname=nidleConnectionTestPeriod"value="120"/
>
oo<propertyname=ncquireIncrement"value="10"/>
ooo<propertyname=ncheckoutTimeoutvalue="3600n/>
oo<propertyname="numHelperThreads〃value="4,r/>
oo<Propertyname="maxStatements"value="400"/>
oo<Propertyname="maxStatementsPerConnection"va1ue=
"20u/>
o<propertyname="maxldleTime"value=n180"/>
oo<propertyname="3cquireRetryAttempts"va1ue=n30"/>
o<propertyname="maxPoolSize"value="200"/>
00
</properties>
</persistence-unit>
</persistence>
自動(dòng)創(chuàng)建I更新I驗(yàn)證數(shù)據(jù)庫表結(jié)構(gòu)。假如不是此方面的需求建議setvalue="none
HO
容易導(dǎo)致數(shù)據(jù)丟失,一般在測(cè)試的時(shí)候才用
<propertyname="hibernate.hbm2ddi.auto"value="create"〉</p
roperty>>validateo驗(yàn)證數(shù)據(jù)庫表結(jié)構(gòu)
create0°每次加載Hib一rnate都會(huì)刪除上一次的表結(jié)構(gòu),根據(jù)model重新生成
create—drop每次加載創(chuàng)建,sessionFactory關(guān)閉表就自動(dòng)刪除
update力口載Hibernate就更想你表結(jié)構(gòu)
環(huán)境測(cè)試代碼
實(shí)體注解
?Entity
@Table(name=nPersonn)
publieclassPerson(
o@Id
o@Co1umn(name=npid")
privateIntegerid;
o@Column(name=npname**)
oprivateStringname;
publicIntegergetld(){
oreturnid;
O}
publicvoidsetId(Integerid){
othis.id=id;
o)
publicStringgetName(){
oreturnname;
o}
opublievoidsetName(Stringname){
oothis.name=name;
0)
}
JUNIT測(cè)試方法
publicEntityManagertestGetEM(){
ooEntityManagerFactoryemf=Persistence.createEntityManag
erFactory(”JPAn);
oEntityManagerem=emf.createEntityManager();
ooreturnem;
o)
publicvoidtestAddPerson(){
oPersonp=newPerson();
op.setId(1);
op.setName("ader");
ooEntityManagerem=testGetEM();
EntityTransactionet=em.getTransaction();
ootry{
oet.begin();
oooem.persist(p);
et.commit();
oo}catch(Exceptione){
oooe.printStackTrace();
。)
o)
MySQL測(cè)試數(shù)據(jù)庫
dropdatabaseifexistsjpa;
createdatabasejPa;
usejpa;
droptableifexistsperson;
droptableifexistsident;
droptabieifexistsrel;
createtableperson(
opidintprimarykeyauto_increment,
opnamevarchar(50)
)
r
createtableident(
oiidintprimarykeyauto_increment,
oinamevarchar(50)
createtablerel(
opersonidint,
oidentidint
JPA支持包
antIr_2.7.6.jar
cglib-2.1.3.jar
classesl2.jar
commons-collections-3.1.Jar
dom4j-1.6.1.jar
ehcache_1.2.3.jar
ejb3-persistence.jar
hibernate3.jar
hibernate-annotations.jar
hibernate-cglib-repack_2.1_3.jar
hibernate-commons-annotations.jar
hibernate-entitymanager.Jar
javassist-3.4.GA.jar
jta-1.1.jar
log4j-1.2.15.jar
persistence-api-1.0.jar
slf4j-api-1.5.2.jar
sIf4j-1og4j12.jar
Hibernate核心包(8個(gè)文獻(xiàn)):hibernate-distribution-3.3.1.GA.ZIP
hibernate3.jar
1ib\bytecode\cglib\hibernate-cglib-repack-2.1_3.jar(CGLI
B庫,Hibernate用它來實(shí)現(xiàn)PO字節(jié)碼的動(dòng)態(tài)
生成,非常核心的庫,必須使用的jar包)
lib\requiredX*?jar
Hibernate注解包(3個(gè)文獻(xiàn)):hibemate-annotations-3.4.0.GA.ZIP
hibernate-annotations.jar
lib\ejb3—persistence.jar,hibernate-commons-annotatio
ns.jar
Hibernate針對(duì)JPA的實(shí)現(xiàn)包(3個(gè)文獻(xiàn)):hibernate—entitymanager-
3.4.0.GA.ZIP
hibernate-entitymanager.jar
lib\test\log4j.jarzslf4j-Iog4j12.jar
數(shù)據(jù)庫連接信息查詢
1\HibernateJDBC屬性
屬性名用途
hibernate.connection.driver_cIas
jdbc驅(qū)動(dòng)類
s
hibernate.connection.ur1jdbcURL
hibernate.connection.username數(shù)據(jù)庫用戶
hibernate,connection.password放據(jù)庫用戶密碼
hibernate.dia1ect數(shù)據(jù)庫方言
2、驅(qū)動(dòng)包
Db2:db2java.jar(JDBC直連)
:db2jcc.jar(Hibernate要用到此驅(qū)動(dòng)jar文獻(xiàn)和上面的驅(qū)動(dòng)jar
文獻(xiàn))
Sybase:jconn3d.jar
MSSQL:msbase.jar+mssqlserver.jar+msutiI.jar
MySQL:mysq1-connector-java-3.1.12—bin.Jar
Oracle1Og:ojdbc14.jar
3、連接字符串(可以先添加驅(qū)動(dòng)包然后到包里找Driver.class)
a、MSSQL
馬區(qū)動(dòng):com?mic「。soft?jdbc.sqlserver.SQLServerDriver
地址:jdbc:microsoft:sqlserver://127.0.0.1:1433;Dat
abaseName=數(shù)據(jù)庫
b\Oracle10g
馬區(qū)動(dòng):oracIe.jdbc.driver.OracleDriver
地址:jdbc:oracle:thin:@127.0.0.1:1521:全局標(biāo)記符
CxMySQL
馬區(qū)動(dòng):org.gjt.mm.mysql.Driver
地址:jdbc:mysql://127.0.0.1:3306/數(shù)據(jù)庫
Access
驅(qū)動(dòng):sun.jdbc.odbc.JdbcOdbcDriver
地址:jdbc:odbc:Driver={MicroSoftAccessDriver(*.m
db)};DBQ=c:\\demodb.mdb
e、DB2
馬區(qū)動(dòng):COM.ibm.db2.jdbe.net.DB2Driver
地址:jdbc:db2://127.0.0.1:6789/demodb
4、HibernateSQL方言(hibernate.dialect)
RDBMS方言
DB2org.hibernate.dialect.DB2Dialect
DB2AS/400org.hibernate.dialect.DB2400Dialect
DB2OS390org.hibernate.dialect.DB2390Dialect
PostgreSQLorg.hibernate.dialect.PostgreSQLDia1ect
MySQLorg.hibernate.dialect.MySQLDialect
org.hibernate.dia1ect.MySQLInnoDBDia
MySQLwithInnoDB
lect
org.hibernate.dialect.MySQLMylSAMDia
MySQLwithMylSAM
1ect
0rac1e(any
org.hibernate.dialect.OracleDialect
version)
0rac1e9i/10gorg.hibernate.dialect.0racle9Dialect
Sybaseorg.hibernate.dialect.SybaseDialect
org.hibernate.dialect.SybaseAnywhereDi
SybaseAnywhere
alect
MicrosoftSQLSer
org.hibernate.dialect.SQLServerDia1ect
ver
SAPDBorg.hibernate.dialect.SAPDBDialect
Informixorg.hibemate,dialect.1nformixDia1ect
HypersonicSQLorg.hibernate.dialect.HSQLDia1ect
Ingresorg.hibernate.dialect.IngresDialect
Progressorg.hibernate.dia1ect.ProgressDia1ect
RDBMS方言
MekoiSQLorg.hibernate.dialect.MckoiDialect
org.hibernate.dia1ect.1nterbaseDia
Interbase
lect
org.hibernate.dialect.PointbaseDialec
Pointbase
t
FrontBaseorg.hibernate.dialect.FrontbaseDialect
Firebirdorg,hibernate.dialect.FirebirdDialect
三、常用注解
3.1批注完全參考
?Entity要將Java類指定為JPA實(shí)體,請(qǐng)使用批注
具體信息
畫
1JPA批注參考htm
3.2ID相關(guān)的
復(fù)合主鍵需要
1、實(shí)現(xiàn)序列話
2、重寫hascode、equal方法
3、有構(gòu)造方法
@EmbeddabIe復(fù)合主鍵設(shè)立可以被引用
@EmbeddedId引用獨(dú)立復(fù)合主鍵ID
3.3主鍵生成策略
使用Hibernate的主鍵生成策略生成字符串主鍵
@Id
@GenericGenerator(name=ngenerator",strategy=nuuidn)
@GeneratedVa1ue(generator="generator")
@Column(name=nidH)
使用Hibernate的主鍵生成策略與其他類共享主鍵
@Id
@GenericGenerator(name="generator”,
ostrategy="foreign”,
oparameters={
@Parameter(name="property",value="
person1')
})
@GeneratedVa1ue(generator=ngenerator*')
?Column(name=ncid”)
3.4字段'添加字段、添加表關(guān)聯(lián)
@Column。持久化字段
可添加、可更新、可為空
長度、表名、字段名、119口1^是否唯一
@JoinColvunn
name列名
referencedColumnName指向?qū)ο蟮拇鮨j名
unique約束唯一
@JoinColumns多個(gè)連接的列
@JoinColumns({
@JoinCoIumn(name="ADDR_ID*',referencedCol
umnName=nIDH),
@JoinCoIumn(name=HADDR_ZIP”,referenee
dColumnName="ZIP")
})
@JoinTable
@JoinTab1e(
name=nEJB_PROJ_EMPH,
Hn
joinColumns=@JoinColumn(name=EMP_IDfreferenc
edColumnName="工D"),
Hn
inverseJoinColumns=@JoinColumn(name=PROJ_IDr
referencedColumnName=HIDH)
)
3.5映射相關(guān)
@OneToOne
@ManyToOne
@ManyToMany
cascade級(jí)聯(lián)、CURD
fetch一次性所有讀取相關(guān)對(duì)象,還是lazy加載
optional關(guān)聯(lián)對(duì)象是否允許為空
targetEntity關(guān)聯(lián)對(duì)象
3.6其他
。排序
@OrderBy("lastnameASC","seniorityDESC")
共享主鍵
@PrimaryKeyJoinColumn
標(biāo)注為非持久話對(duì)象
@Transient
時(shí)間類型
@Temporal(TemporalType..........)
枚舉類型
@Enumerated(EnumType..........)
@Lob//聲明屬性相應(yīng)的是一個(gè)大文獻(xiàn)數(shù)據(jù)字段。
?Basic(feteh=FetchType.LAZY)//設(shè)立為延遲加載,當(dāng)我們?cè)跀?shù)據(jù)庫
中取這條記錄的時(shí)候,不會(huì)去取
四、JPA映射
4.1一對(duì)一映射
4.1.1共享主鍵映射
。1、一端提供主鍵、一端共享主鍵
o設(shè)立生成策略generator,主鍵值gereratedVaIue(generator=〃〃)
oouuid字符串ID
oforeign引用別人ID作為自己的主鍵(需要設(shè)立引用對(duì)象參數(shù))
2、oneToOne
otargetEntity關(guān)聯(lián)的目的對(duì)象,是類名.cIass形式
fetch抓去策略,有關(guān)聯(lián)的一起抓去、還是lazy加載
cascade。級(jí)聯(lián)
mappedBy0本對(duì)象被映射為*(在PrimaryKeyJoinCo1umn的另…端)
o3\PrimaryKeyJoinCoIumn設(shè)立在一端即可
t>name0自身子段
ooreferenceColumnName指向?qū)ο蟮淖侄?/p>
注意:
只要一個(gè)PrimaryKeyJoinColumn,另一端的oneToOne設(shè)立map
pedBy
都只有一個(gè)
注意:
1>向共享主鍵的對(duì)象設(shè)立提供主鍵的對(duì)象,然后持久化共享主鍵對(duì)象
2、需要設(shè)立級(jí)聯(lián)
3、共享主鍵端維護(hù)關(guān)系、提供主鍵端被維護(hù)使用mappedBy
Person提供主鍵
o@Id
nnn
@GenericGenerator(name=generatorrstrategy=*'uuid)
@GeneratedVaiue(generator="generator")
@Co1umn(name=,,pid")
oprivateStringid;
Hn
o0CoIumn(name=pnamezlength=2)
privateStringname;
00neToOne(mappedBy=,,person**,fetch=FetchType.EAGER,t
argetEntity=Idcar,class)
oprivatedeardidcard;
Ideard共享主鍵
QGenericGenerator(namegenerator”,
strategy=*'foreign”,
parameters={
@Parameter(name="propertyn,value=nperso
@GeneratedValue(generator="generator")
o@Column(name=ncid")
oprivateStringid;
o@Co1umn(name=ncnon)
oprivateStringno;
@OneTo0ne(targetEntity=^erson.c1ass,fetch=FetchType.EAG
ER,cascade=caseadeType.ALL)
nH
@PrimaryKeyJoinColumn(name=id'*frefereneedColumnName=i
d”)
oprivatePersonperson;
o@Id
o@GenericGenerator(name="generator",
strategy="foreign"r
parameters={
@Parameter(name=nproperty”,va1ue="personH)
})
@GeneratedValue(generator="generatorn)
@Column(name=ucid”)
privateStringid;
@Co1umn(name="eno")
privateStringno;
o00neToOne(mappedBy=nidcard",fetch=FetchType.EAGER,targetEnt
ity=Person.class)
?privatePersonperson;
使用共享主鍵關(guān)聯(lián)
Personp=newPerson();
op.setName(nadern);
ooldcardidcard=newIdeard();
oidcard.setNo(“321321n);
idcard,setPerson(p);
4.1.2關(guān)聯(lián)外鍵映射
關(guān)系的維護(hù)端
@OneToOne(級(jí)聯(lián))
@JoinColumn(name="本表中關(guān)聯(lián)字段
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 我國上市公司機(jī)構(gòu)投資者持股對(duì)現(xiàn)金股利政策的影響:基于公司治理視角的深度剖析
- 我國上市公司并購支付方式:抉擇、影響與趨勢(shì)
- 我國上市公司反收購法律制度的完善路徑探析
- 球團(tuán)焙燒工崗前客戶服務(wù)考核試卷含答案
- 再生物資挑選工安全管理測(cè)試考核試卷含答案
- 麥芽制麥工安全文化模擬考核試卷含答案
- 碳化鈦制備工崗前安全行為考核試卷含答案
- 船舶貨運(yùn)員創(chuàng)新實(shí)踐競(jìng)賽考核試卷含答案
- 知識(shí)傳遞關(guān)愛延續(xù)
- 2026年吉安市白鷺洲中學(xué)面向高校招聘教師15人備考題庫(含答案詳解)
- 北師大版七年級(jí)上冊(cè)數(shù)學(xué) 期末復(fù)習(xí)講義
- 2023年初級(jí)經(jīng)濟(jì)師《初級(jí)人力資源專業(yè)知識(shí)與實(shí)務(wù)》歷年真題匯編(共270題)
- 赤峰南臺(tái)子金礦有限公司金礦2022年度礦山地質(zhì)環(huán)境治理計(jì)劃書
- 氣穴現(xiàn)象和液壓沖擊
- 公民健康素養(yǎng)知識(shí)講座課件
- 銷軸連接(-自編)
- GB/T 15623.2-2003液壓傳動(dòng)電調(diào)制液壓控制閥第2部分:三通方向流量控制閥試驗(yàn)方法
- 英語音標(biāo)拼讀練習(xí)
- 新外研版八年級(jí)上冊(cè)總復(fù)習(xí)知識(shí)點(diǎn)歸納
- 江蘇省泰州市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名居民村民委員會(huì)明細(xì)及行政區(qū)劃代碼
- 文言文入門課課件
評(píng)論
0/150
提交評(píng)論