??xml version="1.0" encoding="utf-8" standalone="yes"?>精品国产二区在线,亚洲亚洲精品三区日韩精品在线视频,伊人久久亚洲热http://www.aygfsteel.com/rain1102/category/37636.html<br/><font color="green" style="font-family: 华文行楷;font-size:16px;">子曰Q危邦不入,乱邦不居。天下有道则见,无道则隐?lt;/font><font color="#3C1435"></font>zh-cnSat, 21 Feb 2009 02:39:46 GMTSat, 21 Feb 2009 02:39:46 GMT60[转] 常用 JPA annotation 参?/title><link>http://www.aygfsteel.com/rain1102/archive/2009/02/09/253913.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Mon, 09 Feb 2009 07:38:00 GMT</pubDate><guid>http://www.aygfsteel.com/rain1102/archive/2009/02/09/253913.html</guid><wfw:comment>http://www.aygfsteel.com/rain1102/comments/253913.html</wfw:comment><comments>http://www.aygfsteel.com/rain1102/archive/2009/02/09/253913.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/rain1102/comments/commentRss/253913.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/rain1102/services/trackbacks/253913.html</trackback:ping><description><![CDATA[<p><strong>Table <br /> </strong>Table用来定义entity主表的nameQcatalogQschema{属性?<br /> 元数据属性说明: <br /> · name: 表名 <br /> · catalog: 对应关系数据库中的catalog <br /> · schemaQ对应关pL据库中的schema <br /> · UniqueConstraints:定义一个UniqueConstraint数组Q指定需要徏唯一U束的列 <br />         <br /> @Entity<br /> @Table(name="CUST")<br /> public class Customer { ... }<br />   <br /> <strong>SecondaryTable</strong> <br /> 一个entity class可以映射到多表,SecondaryTable用来定义单个从表的名字,主键名字{属性?<br /> 元数据属性说明: <br /> · name: 表名 <br /> · catalog: 对应关系数据库中的catalog <br /> · schemaQ对应关pL据库中的schema <br /> · pkJoin: 定义一个PrimaryKeyJoinColumn数组Q指定从表的主键?<br /> · UniqueConstraints:定义一个UniqueConstraint数组Q指定需要徏唯一U束的列 <br /> 下面的代码说明CustomercL到两个表,主表名是CUSTOMERQ从表名是CUST_DETAILQ从表的主键列和主表的主键列cd相同Q列名ؓCUST_ID?<br />         <br /> @Entity<br /> @Table(name="CUSTOMER")<br /> @SecondaryTable(name="CUST_DETAIL",pkJoin=@PrimaryKeyJoinColumn(name="CUST_ID"))<br /> public class Customer { ... }</p> <p><strong>SecondaryTables </strong><br /> 当一个entity class映射C个主表和多个从表Ӟ用SecondaryTables来定义各个从表的属性?<br /> 元数据属性说明: <br /> · valueQ?定义一个SecondaryTable数组Q指定每个从表的属性?<br />         <br /> @Table(name = "CUSTOMER")<br /> @SecondaryTables( value = {<br /> @SecondaryTable(name = "CUST_NAME", pkJoin = { @PrimaryKeyJoinColumn(name = "STMO_ID", referencedColumnName = "id") }),<br /> @SecondaryTable(name = "CUST_ADDRESS", pkJoin = { @PrimaryKeyJoinColumn(name = "STMO_ID", referencedColumnName = "id") }) })<br /> public class Customer {}</p> <p>UniqueConstraint <br /> UniqueConstraint定义在Table或SecondaryTable元数据里Q用来指定徏表时需要徏唯一U束的列?<br /> 元数据属性说明: <br /> · columnNames:定义一个字W串数组Q指定要建唯一U束的列名?<br />         <br /> @Entity<br /> @Table(name="EMPLOYEE",<br /> uniqueConstraints={@UniqueConstraint(columnNames={"EMP_ID", "EMP_NAME"})}<br /> )<br /> public class Employee { ... }</p> <p><strong>Column <br /> </strong>Column元数据定义了映射到数据库的列的所有属性:列名Q是否唯一Q是否允ؓI,是否允许更新{?<br /> 元数据属性说明: <br /> · name:列名?<br /> · unique: 是否唯一 <br /> · nullable: 是否允许为空 <br /> · insertable: 是否允许插入 <br /> · updatable: 是否允许更新 <br /> · columnDefinition: 定义时创建此列的DDL <br /> · secondaryTable: 从表名。如果此列不建在主表上(默认建在主表Q,该属性定义该列所在从表的名字?<br />         <br /> public class Person {<br /> @Column(name = "PERSONNAME", unique = true, nullable = false, updatable = true)<br /> private String name;<br /> @Column(name = "PHOTO", columnDefinition = "BLOB NOT NULL", secondaryTable="PER_PHOTO")<br /> private byte[] picture;</p> <p><strong>JoinColumn <br /> </strong>如果在entity class的field上定义了关系Qone2one或one2many{)Q我们通过JoinColumn来定义关pȝ属性。JoinColumn的大部分属性和ColumncM?<br /> 元数据属性说明: <br /> · name:列名?<br /> · referencedColumnName:该列指向列的列名Q徏表时该列作ؓ外键列指向关pd一端的指定列) <br /> · unique: 是否唯一 <br /> · nullable: 是否允许为空 <br /> · insertable: 是否允许插入 <br /> · updatable: 是否允许更新 <br /> · columnDefinition: 定义时创建此列的DDL <br /> · secondaryTable: 从表名。如果此列不建在主表上(默认建在主表Q,该属性定义该列所在从表的名字?<br /> 下面的代码说明Custom和Order是一对一关系。在Order对应的映表Z个名为CUST_ID的列Q该列作为外键指向Custom对应表中名ؓID的列?<br />         <br /> public class Custom {<br /> @OneToOne<br /> @JoinColumn(<br /> name="CUST_ID", referencedColumnName="ID", unique=true, nullable=true, updatable=true)<br /> public Order getOrder() {<br /> return order;<br /> }</p> <p><strong>JoinColumns</strong> <br /> 如果在entity class的field上定义了关系Qone2one或one2many{)Qƈ且关pd在多个JoinColumnQ用JoinColumns定义多个JoinColumn的属性?<br /> 元数据属性说明: <br /> · value: 定义JoinColumn数组Q指定每个JoinColumn的属性?<br /> 下面的代码说明Custom和Order是一对一关系。在Order对应的映表Z列,一列名为CUST_IDQ该列作为外键指向Custom对应表中名ؓID的列,另一列名为CUST_NAMEQ该列作为外键指向Custom对应表中名ؓNAME的列?<br />         <br /> public class Custom {<br /> @OneToOne<br /> @JoinColumns({<br /> @JoinColumn(name="CUST_ID", referencedColumnName="ID"),<br /> @JoinColumn(name="CUST_NAME", referencedColumnName="NAME")<br /> })<br /> public Order getOrder() {<br /> return order;<br /> }</p> <p><strong>Id </strong><br /> 声明当前field为映表中的主键列。id值的获取方式有五U:TABLE, SEQUENCE, IDENTITY, AUTO, NONE。Oracle和DB2支持SEQUENCEQSQL Server和Sybase支持IDENTITY,mysql支持AUTO。所有的数据库都可以指定为AUTOQ我们会Ҏ不同数据库做转换。NONE (默认)需要用戯己指定Id的倹{元数据属性说明: <br /> · generate():主键值的获取cd <br /> · generator():TableGenerator的名字(当generate=GeneratorType.TABLE才需要指定该属性) <br /> 下面的代码声明Task的主键列id是自动增长的?Oracle和DB2从默认的SEQUENCE取|SQL Server和Sybase该列建成IDENTITYQmysql该列建成auto increment? <br />         <br /> @Entity<br /> @Table(name = "OTASK")<br /> public class Task {<br /> @Id(generate = GeneratorType.AUTO)<br /> public Integer getId() {<br /> return id;<br /> }<br /> }</p> <p><strong>IdClass</strong> <br /> 当entity class使用复合主键Ӟ需要定义一个类作ؓid class。id class必须W合以下要求:cdd明ؓpublicQƈ提供一个声明ؓpublic的空构造函数。必d现Serializable接,覆写 equals()和hashCodeQ)Ҏ。entity class的所有id field在id class都要定义Q且cd一栗?<br /> 元数据属性说明: <br /> · value: id class的类?<br />    public class EmployeePK implements <a title="Java爱好? href="http://www.aygfsteel.com/rain1102">Java</a>.io.Serializable{<br />        String empName;<br />        Integer empAge;</p> <p>       public EmployeePK(){}<br />        public boolean equals(Object obj){ ......}<br />        public int hashCode(){......}<br />     }</p> <p>    @IdClass(value=com.acme.EmployeePK.class)<br />     @Entity(access=FIELD)<br />     public class Employee {<br />         @Id String empName;<br />         @Id Integer empAge;<br />     }<br />     <br />       <br /> <strong>MapKey</strong> <br /> 在一对多Q多对多关系中,我们可以用Map来保存集合对象。默认用主键值做keyQ如果用复合主键,则用id class的实例做keyQ如果指定了name属性,q指定的field的值做key?<br /> 元数据属性说明: <br /> · name: 用来做key的field名字 <br /> 下面的代码说明Person和Book之间是一对多关系。Person的books字段是MapcdQ用Book的isbn字段的g为Map的key?<br />         </p> <p>@Table(name = "PERSON")<br /> public class Person {<br /> @OneToMany(targetEntity = Book.class, cascade = CascadeType.ALL, mappedBy = "person")<br /> @MapKey(name = "isbn")<br /> private Map books = new HashMap();<br /> }</p> <p><br /> <strong>OrderBy <br /> </strong>在一对多Q多对多关系中,有时我们希望从数据库加蝲出来的集合对象是按一定方式排序的Q这可以通过OrderBy来实玎ͼ默认是按对象的主键升序排列?<br /> 元数据属性说明: <br /> · value: 字符串类型,指定排序方式。格式ؓ"fieldName1 [ASC|DESC],fieldName2 [ASC|DESC],......",排序cd可以不指定,默认是ASC?<br /> 下面的代码说明Person和Book之间是一对多关系。集合books按照Book的isbn升序Qname降序排列?<br />         </p> <p>@Table(name = "MAPKEY_PERSON")<br /> public class Person {<br /> @OneToMany(targetEntity = Book.class, cascade = CascadeType.ALL, mappedBy = "person")<br /> @OrderBy(name = "isbn ASC, name DESC")<br /> private List books = new ArrayList();<br /> }</p> <p><br /> <strong>PrimaryKeyJoinColumn</strong> <br /> 在三U情况下会用到PrimaryKeyJoinColumn?<br /> · l承?<br /> · entity class映射C个或多个从表。从表根据主表的主键列(列名为referencedColumnName值的列)Q徏立一个类型一L主键列,列名由name属性定义?<br /> · one2one关系Q关pȝ护端的主键作为外键指向关p被l护端的主键Q不再新Z个外键列?<br /> 元数据属性说明: <br /> · name:列名?<br /> · referencedColumnName:该列引用列的列名 <br /> · columnDefinition: 定义时创建此列的DDL <br /> 下面的代码说明Customer映射C个表Q主表CUSTOMER,从表CUST_DETAILQ从表需要徏立主键列CUST_IDQ该列和主表的主键列id除了列名不同Q其他定义一栗?<br />           @Entity<br /> @Table(name="CUSTOMER")<br /> @SecondaryTable(name="CUST_DETAIL",pkJoin=@PrimaryKeyJoinColumn(name="CUST_ID"QreferencedColumnName="id"))<br /> public class Customer {<br /> @Id(generate = GeneratorType.AUTO)<br /> public Integer getId() {<br /> return id;<br /> }<br /> }</p> <p>下面的代码说明Employee和EmployeeInfo是一对一关系QEmployee的主键列id作ؓ外键指向EmployeeInfo的主键列INFO_ID?<br />         <br /> @Table(name = "Employee")<br /> public class Employee {<br /> @OneToOne<br /> @PrimaryKeyJoinColumn(name = "id", referencedColumnName="INFO_ID")<br /> EmployeeInfo info;<br /> }</p> <p><strong>PrimaryKeyJoinColumns</strong> <br /> 如果entity class使用了复合主键,指定单个PrimaryKeyJoinColumn不能满要求Ӟ可以用PrimaryKeyJoinColumns来定义多个PrimaryKeyJoinColumn?<br /> 元数据属性说明: <br /> · value: 一个PrimaryKeyJoinColumn数组Q包含所有PrimaryKeyJoinColumn?<br /> 下面的代码说明了Employee和EmployeeInfo是一对一关系。他们都使用复合主键Q徏表时需要在Employee表徏立一个外键,从Employee的主键列id,name指向EmployeeInfo的主键列INFO_ID和INFO_NAME. <br />         <br /> @Entity<br /> @IdClass(EmpPK.class)<br /> @Table(name = "EMPLOYEE")<br /> public class Employee {<br /> private int id;<br /> private String name;<br /> private String address;<br /> @OneToOne(cascade = CascadeType.ALL)<br /> @PrimaryKeyJoinColumns({<br /> @PrimaryKeyJoinColumn(name="id", referencedColumnName="INFO_ID"),<br /> @PrimaryKeyJoinColumn(name="name" , referencedColumnName="INFO_NAME")})<br /> EmployeeInfo info;<br /> }<br /> @Entity<br /> @IdClass(EmpPK.class)<br /> @Table(name = "EMPLOYEE_INFO")<br /> public class EmployeeInfo {<br /> @Id<br /> @Column(name = "INFO_ID")<br /> private int id;<br /> @Id<br /> @Column(name = "INFO_NAME")<br /> private String name;<br /> }</p> <p><strong>Transient <br /> </strong>Transient用来注释entity的属性,指定的这些属性不会被持久化,也不会ؓq些属性徏表?<br />         <br /> @Transient<br /> private String name;</p> <p><strong>Version </strong><br /> Version指定实体cd乐观事务中的version属性。在实体c重新由EntityManager理q且加入C观事务中Ӟ保证完整性。每一个类只能有一个属性被指定为versionQversion属性应该映到实体cȝ主表上?<br /> 下面的代码说明versionNum属性作个类的versionQ映到数据库中主表的列名是OPTLOCK?<br />         <br /> @Version<br /> @Column("OPTLOCK")<br /> protected int getVersionNum() { return versionNum; }</p> <p><strong>Lob</strong> <br /> Lob指定一个属性作为数据库支持的大对象cd在数据库中存储。用LobTypeq个枚D来定义Lob是二q制cdq是字符cd?<br /> LobType枚Dcd说明Q?<br /> · BLOB 二进制大对象QByte[]或者Serializable的类型可以指定ؓBLOB?<br /> · CLOB 字符型大对象Qchar[]、Character[]或Stringcd可以指定为CLOB?<br /> 元数据属性说明: <br /> · fetchQ?定义q个字段是lazy loadedq是eagerly fetched。数据类型是FetchType枚DQ默认ؓLAZY,即lazy loaded. <br /> · typeQ?定义q个字段在数据库中的JDBC数据cd。数据类型是LobType枚DQ默认ؓBLOB?<br /> 下面的代码定义了一个BLOBcd的属性和一个CLOBcd的属性?<br />         <br /> @Lob<br /> @Column(name="PHOTO" columnDefinition="BLOB NOT NULL")<br /> protected JPEGImage picture;<br /> @Lob(fetch=EAGER, type=CLOB)<br /> @Column(name="REPORT")<br /> protected String report;</p> <p><strong>JoinTable</strong> <br /> JoinTable在many-to-many关系的所有者一边定义。如果没有定义JoinTableQ用JoinTable的默认倹{?<br /> 元数据属性说明: <br /> · table:q个join table的Table定义?<br /> · joinColumns:定义指向所有者主表的外键列,数据cd是JoinColumn数组?<br /> · inverseJoinColumns:定义指向非所有者主表的外键列,数据cd是JoinColumn数组?<br /> 下面的代码定义了一个连接表CUST和PHONE的join table。join table的表名是CUST_PHONEQ包含两个外键,一个外键是CUST_IDQ指向表CUST的主键IDQ另一个外键是PHONE_IDQ指向表PHONE的主键ID?<br />         <br /> @JoinTable(<br /> table=@Table(name=CUST_PHONE),<br /> joinColumns=@JoinColumn(name="CUST_ID", referencedColumnName="ID"),<br /> inverseJoinColumns=@JoinColumn(name="PHONE_ID", referencedColumnName="ID")<br /> )</p> <p><strong>TableGenerator</strong> <br /> TableGenerator定义一个主键值生成器Q在Idq个元数据的generateQTABLEӞgenerator属性中可以使用生成器的名字。生成器可以在类、方法或者属性上定义?<br /> 生成器是为多个实体类提供q箋的ID值的表,每一行ؓ一个类提供ID|ID值通常是整数?<br /> 元数据属性说明: <br /> · name:生成器的唯一名字Q可以被Id元数据用?<br /> · table:生成器用来存储id值的Table定义?<br /> · pkColumnName:生成器表的主键名U?<br /> · valueColumnName:生成器表的ID值的列名U?<br /> · pkColumnValue:生成器表中的一行数据的主键倹{?<br /> · initialValue:id值的初始倹{?<br /> · allocationSize:id值的增量?<br /> 下面的代码定义了两个生成器empGen和addressGenQ生成器的表是ID_GEN?<br />         <br /> @Entity public class Employee {<br /> ...<br /> @TableGenerator(name="empGen",<br /> table=@Table(name="ID_GEN"),<br /> pkColumnName="GEN_KEY",<br /> valueColumnName="GEN_VALUE",<br /> pkColumnValue="EMP_ID",<br /> allocationSize=1)<br /> @Id(generate=TABLE, generator="empGen")<br /> public int id;<br /> ...<br /> }<br /> @Entity public class Address {<br /> ...<br /> @TableGenerator(name="addressGen",<br /> table=@Table(name="ID_GEN"),<br /> pkColumnValue="ADDR_ID")<br /> @Id(generate=TABLE, generator="addressGen")<br /> public int id;<br /> ...<br /> }</p> <p><strong>SequenceGenerator</strong> <br /> SequenceGenerator定义一个主键值生成器Q在Idq个元数据的generator属性中可以使用生成器的名字。生成器可以在类、方法或者属性上定义。生成器是数据库支持的sequence对象?<br /> 元数据属性说明: <br /> · name:生成器的唯一名字Q可以被Id元数据用?<br /> · sequenceName:数据库中Qsequence对象的名U。如果不指定Q会使用提供商指定的默认名称?<br /> · initialValue:id值的初始倹{?<br /> · allocationSize:id值的增量?<br /> 下面的代码定义了一个用提供商默认名称的sequence生成器?<br />         <br /> @SequenceGenerator(name="EMP_SEQ", allocationSize=25)</p> <p><strong>DiscriminatorColumn </strong><br /> DiscriminatorColumn定义在用SINGLE_TABLE或JOINEDl承{略的表中区别不l承层次的列?<br /> 元数据属性说明: <br /> · name:column的名字。默认gؓTYPE?<br /> · columnDefinition:生成DDL的sql片断?<br /> · length:Stringcd的column的长度,其他cd使用默认?0?<br /> 下面的代码定义了一个列名ؓDISCQ长度ؓ20的Stringcd的区别列?<br />         <br /> @Entity<br /> @Table(name="CUST")<br /> @Inheritance(strategy=SINGLE_TABLE,<br /> discriminatorType=STRING,<br /> discriminatorValue="CUSTOMER")<br /> @DiscriminatorColumn(name="DISC", length=20)<br /> public class Customer { ... }</p> <p> </p><img src ="http://www.aygfsteel.com/rain1102/aggbug/253913.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/rain1102/" target="_blank">Eric.Zhou</a> 2009-02-09 15:38 <a href="http://www.aygfsteel.com/rain1102/archive/2009/02/09/253913.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>EQL中用case when..then..else..end和exists语句, 以及True和Falsehttp://www.aygfsteel.com/rain1102/archive/2008/08/29/225667.htmlEric.ZhouEric.ZhouFri, 29 Aug 2008 15:38:00 GMThttp://www.aygfsteel.com/rain1102/archive/2008/08/29/225667.htmlhttp://www.aygfsteel.com/rain1102/comments/225667.htmlhttp://www.aygfsteel.com/rain1102/archive/2008/08/29/225667.html#Feedback0http://www.aygfsteel.com/rain1102/comments/commentRss/225667.htmlhttp://www.aygfsteel.com/rain1102/services/trackbacks/225667.html     List<Meeting> meetings = new ArrayList<Meeting>();
    meetings = mgr.createQuery("select new com.integral7.ejb3.investigations.Meeting(m.id, m.scheduledDate, m.type.name, m.description, " +
        "case when exists(select id from MeetingAudit ma where ma.meeting = m and ma.audit.id = ?0) then True else False end) " +
        " from Meeting m " +
        " where m.owner.id = ?1 and m.scheduledDate >= ?2 order by m.scheduledDate asc")
        .setParameter(0, candidateId)
        .setParameter(1, ownerId)
        .setParameter(2, DateUtils.convertToBeginningOfDay(new Date())).getResultList();
    return meetings;
 }

q里主要注意True ?span style="color: #008000">False 首字母必d写其余小?

Eric.Zhou 2008-08-29 23:38 发表评论
]]>
配置Entity beans为缓?/title><link>http://www.aygfsteel.com/rain1102/archive/2008/06/13/207622.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Fri, 13 Jun 2008 03:55:00 GMT</pubDate><guid>http://www.aygfsteel.com/rain1102/archive/2008/06/13/207622.html</guid><wfw:comment>http://www.aygfsteel.com/rain1102/comments/207622.html</wfw:comment><comments>http://www.aygfsteel.com/rain1102/archive/2008/06/13/207622.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/rain1102/comments/commentRss/207622.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/rain1102/services/trackbacks/207622.html</trackback:ping><description><![CDATA[<div><span style="font-size: 10.5pt; font-family: 宋体" AR-SA New Times .5pt;> <div><span style="font-size: 10.5pt; font-family: 宋体" AR-SA New Times .5pt;>你用正常方式定义你的 entity bean cRJBoss EJB 3.0 来的版本将支持 annotating entities 和所~存的它们的关系的集合,但是现在你不得不直接配置底层?hibernate 引擎。让我们看看通过可选的property元素配置 hibernate ~存选项的persistence.xml文g。下面persistence.xml 里的定义~存的元素应该被启用Q?/span></div> <span style="font-size: 10.5pt; font-family: 宋体" AR-SA New Times .5pt;> <div> <div style="border-right: #cccccc 1px solid; padding-right: 4px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 10pt; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; color: #000000; word-break: break-all; line-height: 16px; padding-top: 4px; border-bottom: #cccccc 1px solid; font-family: verdana,宋体; background-color: #eeeeee"><!--<font color="#008000"> Clustered cache with TreeCache </font>--> <br /> <font color="#0000ff"><</font><font color="#800000">property</font> <font color="#ff0000">name</font><font color="#0000ff">="cache.provider_class"</font><font color="#0000ff">></font> <br /> org.jboss.ejb3.entity.TreeCacheProviderHook <br /> <font color="#0000ff"></</font><font color="#800000">property</font><font color="#0000ff">></font></div> </div> <div> </div> <div><span style="font-size: 10.5pt; font-family: 宋体" AR-SA New Times .5pt;>下面的属性元素定义了所使用的缓存对象名?MBean 名?/span></div> <span style="font-size: 10.5pt; font-family: 宋体" AR-SA New Times .5pt;> <div> <div style="border-right: #cccccc 1px solid; padding-right: 4px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 10pt; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; color: #000000; word-break: break-all; line-height: 16px; padding-top: 4px; border-bottom: #cccccc 1px solid; font-family: verdana,宋体; background-color: #eeeeee"><font color="#0000ff"><</font><font color="#800000">property</font> <font color="#ff0000">name</font><font color="#0000ff">="treecache.mbean.object_name"</font><font color="#0000ff">></font> <br /> jboss.cache:service=EJB3EntityTreeCache <br /> <font color="#0000ff"></</font><font color="#800000">property</font><font color="#0000ff">></font></div> </div> <div> </div> <div><span style="font-size: 10.5pt; font-family: 宋体" AR-SA New Times .5pt;>下一步我们需要配|?entities 被缓存的内容。就像上面所展示的样Q缺省是什么都不缓存。我们用@Cache 注解来标记需要缓存的 entity beans?/span></div> <span style="font-size: 10.5pt; font-family: 宋体" AR-SA New Times .5pt;> <div> <div style="border-right: #cccccc 1px solid; padding-right: 4px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 10pt; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; color: #000000; word-break: break-all; line-height: 16px; padding-top: 4px; border-bottom: #cccccc 1px solid; font-family: verdana,宋体; background-color: #eeeeee">@Entity <br /> @Cache(usage=CacheConcurrencyStrategy.TRANSACTIONAL) <br /> <font color="#0000ff">public</font> <font color="#0000ff">class</font> Customer <font color="#0000ff">implements</font> Serializable { <br /> <font color="#008000">// ... ... </font><br /> }</div> </div> <div> </div> <div><span style="font-size: 10.5pt; font-family: 宋体" AR-SA New Times .5pt;>    一个简单的原则是Q你应该对很变动和频繁使用的对象进行缓?你可以在ejb3-entity-cache-service.xml配置文g里ؓ每个 entity bean 微调~存讄。例如,你可以指定缓存的大小。如果缓存里的对象太多,~存有可能挤掉最老的对象Q或者最用的对象,依你的配|而定Q来l新对象留出I间。mycompany.Customer entity bean 的缓存区Qcache regionQ是/mycompany/Customer?/span></div> <span style="font-size: 10.5pt; font-family: 宋体" AR-SA New Times .5pt;> <div> <div style="border-right: #cccccc 1px solid; padding-right: 4px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 10pt; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; color: #000000; word-break: break-all; line-height: 16px; padding-top: 4px; border-bottom: #cccccc 1px solid; font-family: verdana,宋体; background-color: #eeeeee"><font color="#0000ff"><</font><font color="#800000">server</font><font color="#0000ff">></font> <br /> <font color="#0000ff"><</font><font color="#800000">mbean</font> <font color="#ff0000">code</font><font color="#0000ff">="org.jboss.cache.TreeCache"</font> <br /> <font color="#ff0000">name</font><font color="#0000ff">="jboss.cache:service=EJB3EntityTreeCache"</font><font color="#0000ff">></font> <br /> <font color="#0000ff"><</font><font color="#800000">depends</font><font color="#0000ff">></font>jboss:service=Naming <br /> <font color="#0000ff"><</font><font color="#800000">depends</font><font color="#0000ff">></font>jboss:service=TransactionManager <br /> ... ... <br /> <font color="#0000ff"><</font><font color="#800000">attribute</font> <font color="#ff0000">name</font><font color="#0000ff">="EvictionPolicyConfig"</font><font color="#0000ff">></font> <br /> <font color="#0000ff"><</font><font color="#800000">config</font><font color="#0000ff">></font> <br /> <font color="#0000ff"><</font><font color="#800000">attribute</font> <font color="#ff0000">name</font><font color="#0000ff">="wakeUpIntervalSeconds"</font><font color="#0000ff">></font>5<font color="#0000ff"></</font><font color="#800000">attribute</font><font color="#0000ff">></font> <br /> <font color="#0000ff"><</font><font color="#800000">region</font> <font color="#ff0000">name</font><font color="#0000ff">="/_default_"</font><font color="#0000ff">></font> <br /> <font color="#0000ff"><</font><font color="#800000">attribute</font> <font color="#ff0000">name</font><font color="#0000ff">="maxNodes"</font><font color="#0000ff">></font>5000<font color="#0000ff"></</font><font color="#800000">attribute</font><font color="#0000ff">></font> <br /> <font color="#0000ff"><</font><font color="#800000">attribute</font> <font color="#ff0000">name</font><font color="#0000ff">="timeToLiveSeconds"</font><font color="#0000ff">></font>1000<font color="#0000ff"></</font><font color="#800000">attribute</font><font color="#0000ff">></font> <br /> <font color="#0000ff"></</font><font color="#800000">region</font><font color="#0000ff">></font> <br /> <font color="#0000ff"><</font><font color="#800000">region</font> <font color="#ff0000">name</font><font color="#0000ff">="/mycompany/Customer"</font><font color="#0000ff">></font> <br /> <font color="#0000ff"><</font><font color="#800000">attribute</font> <font color="#ff0000">name</font><font color="#0000ff">="maxNodes"</font><font color="#0000ff">></font>10<font color="#0000ff"></</font><font color="#800000">attribute</font><font color="#0000ff">></font> <br /> <font color="#0000ff"><</font><font color="#800000">attribute</font> <font color="#ff0000">name</font><font color="#0000ff">="timeToLiveSeconds"</font><font color="#0000ff">></font>5000<font color="#0000ff"></</font><font color="#800000">attribute</font><font color="#0000ff">></font> <br /> <font color="#0000ff"></</font><font color="#800000">region</font><font color="#0000ff">></font> <br /> ... ... <br /> <font color="#0000ff"></</font><font color="#800000">config</font><font color="#0000ff">></font> <br /> <font color="#0000ff"></</font><font color="#800000">attribute</font><font color="#0000ff">></font> <br /> <font color="#0000ff"></</font><font color="#800000">mbean</font><font color="#0000ff">></font> <br /> <font color="#0000ff"></</font><font color="#800000">server</font><font color="#0000ff">></font></div> </div> </span></span></span></span> <div style="margin: 0cm 0cm 0pt; text-indent: 21pt; line-height: 150%"><span style="font-family: 宋体"><font style="font-size: 10pt" size="3">如果你没有ؓ entity bean cL定缓存区Qcache regionQ,q个cȝ所有实例将象上面定义的一L存在/_default区里。EJB3 Query API 提供了让你在指定的缓存区里保存或载入查询l果Q就?entity beans 的集合)的方法?/font></span></span></div> </div><img src ="http://www.aygfsteel.com/rain1102/aggbug/207622.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/rain1102/" target="_blank">Eric.Zhou</a> 2008-06-13 11:55 <a href="http://www.aygfsteel.com/rain1102/archive/2008/06/13/207622.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>EJB3.0初步之环境配|?/title><link>http://www.aygfsteel.com/rain1102/archive/2006/11/23/82956.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Thu, 23 Nov 2006 01:45:00 GMT</pubDate><guid>http://www.aygfsteel.com/rain1102/archive/2006/11/23/82956.html</guid><wfw:comment>http://www.aygfsteel.com/rain1102/comments/82956.html</wfw:comment><comments>http://www.aygfsteel.com/rain1102/archive/2006/11/23/82956.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/rain1102/comments/commentRss/82956.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/rain1102/services/trackbacks/82956.html</trackback:ping><description><![CDATA[<p>开发EJB3.0Q当然要先配|环境,那我们就来吧Q?/p> <p>先下载JBoss4.0.3RC2版本Q他们说已经包含了EJB3.0的容器,可是我没看到。也|?我们先配置一下?/p> <p>如果在这之前版本Q肯定是要配|的Q?/p> <p>1、首先要保证你已l下载了jboss和ejb3.0Q先装jbossQ这个不用教吧?</p> <p>2、解压羃ejb包,然后坐一下动作:</p> <p>从ejb的lib/目录下把ejb3.deployer 、ejb3-clustered-sfsbcache-service.xml 、ejb3-entity-cache-service.xml 、ejb3-entity-cache-service.xml 、ejb3-interceptors-aop.xml 、jboss-aop-jdk50.deployer 复制到jboss-4.0.x/server/all/deploy 目录下;</p> <p>把jboss-xb.jar 复制到jboss-4.0.x/server/all/lib 目录下;</p> <p>把jboss-aop.deployer/目录从jboss-4.0.x/server/all/deploy 中删除?/p> <p>3、启动jbossQrun -c all </p> <p>4、打开ejb3.0的目录中docs/tutorials目录Q里面有mdb目录Q打开Q有build.xml文gQ哈哈,是q个地方Q?/p> <p>装了ANT了吗Q没有,那你下一个吧Q然后,讄pathQ让pȝ能够扑ֈ他!</p> <p>然后Q在mdb目录下运行ANTQ如果没问题Q那说明你的环境变量没问题?/p> <p>下一步,别急着q别的,先运行jbossQ接着再运行ANT  run?/p> <p>没问题吧</p><img src ="http://www.aygfsteel.com/rain1102/aggbug/82956.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/rain1102/" target="_blank">Eric.Zhou</a> 2006-11-23 09:45 <a href="http://www.aygfsteel.com/rain1102/archive/2006/11/23/82956.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> վ֩ģ壺 <a href="http://" target="_blank">ѭ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ƽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ƺ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">կ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ϫ</a>| <a href="http://" target="_blank">¡</a>| <a href="http://" target="_blank">ͷ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">̩</a>| <a href="http://" target="_blank">˷</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ɫ</a>| <a href="http://" target="_blank">ƽ</a>| <a href="http://" target="_blank">ƽ</a>| <a href="http://" target="_blank">°Ͷ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ʳ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ľ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>