|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
主要缺点就是:速度比较慢,没有C和C++快
在后面的例子中,我们演示了一对多和多对一的例子,在本章将演示多对多和一对一的干系。
先生和先生就是多对多的干系。一个先生有多个先生,一个先生教多个先生。
先生和档案就是一对一的干系(不晓得外洋的先生有无档案?)。
为了完成多对多的干系,数据库中必要联系关系表,用以在两个实体间创建联系关系。JBoss能够主动天生联系关系表,你也能够@AssociationTable来指定联系关系表的信息。
如:
@ManyToMany(cascade={CascadeType.CREATE,CascadeType.MERGE},fetch=FetchType.EAGER,isInverse=true)
@AssociationTable(table=@Table(name="STUDENT_TEACHER"),
joinColumns={@JoinColumn(name="TEACHER_ID")},inverseJoinColumns={@JoinColumn(name="STUDENT_ID")})
@AssociationTable的正文声明以下:
@Target({METHOD,FIELD})
public@interfaceAssociationTable{
Tabletable()default@Table(specified=false);
JoinColumn[]joinColumns()default{};
JoinColumn[]inverseJoinColumns()default{};
}
联系关系表正文指定了联系关系表的称号、主表的列和从表的列。
为了完成一对一的干系,必要用@OneToOne来正文。
如:
@OneToOne(cascade={CascadeType.ALL})
@JoinColumn(name="DOSSIER_ID")
publicDossiergetDossier()
{
returndossier;
}
这界说了一个单向的一对一的干系。假如在Dossier也界说了相干的联系关系,那末它就是双向的。双向的意义就是经由过程一个Student实体就能够查找到一个Dossier,经由过程一个Dossier就能够查找到一个Student。
@OneToOne的正文声明以下:
@Target({METHOD,FIELD})@Retention(RUNTIME)
public@interfaceOneToOne{
StringtargetEntity()default"";
CascadeType[]cascade()default{};
FetchTypefetch()defaultEAGER;
booleanoptional()defaulttrue;
}
这个例子次要有以下几个文件,这个例子次要完成了先生和先生、先生和档案之间的干系。Student、Teacher、Dossier都是实体Bean。Student和Dossier是一个双向的OneToOne之间的干系,Student和Teacher是ManyToMany的干系,也是双向的。和后面的例子一样,我们仍是利用Client测试。
Student.java:实体Bean。
Dossier.java:实体Bean所依附的类。
Teacher.java:实体Bean所依附的类。
EntityTest.java:会话Bean的营业接口
EntityTestBean.java:会话Bean的完成类
<p>
j2EE和asp比较,其实也没什么比的,原因和我上面说那些比较差不了多少,也是稳定性,安全性,J2EE比asp高,速度上比不过asp,asp也是延续着它的拖拽控件的方法,提高速度。 |
|