ï»??xml version="1.0" encoding="utf-8" standalone="yes"?>www亚洲人,一区二区在线观看视频,国产亚洲精品91在线http://www.aygfsteel.com/gkm422/category/27506.html十年生死两茫茫,不思量åQŒè‡ªéš‘Ö¿˜ã€‚千里孤坟,无处话凄凉ã€?/description>zh-cnFri, 23 Nov 2007 06:04:14 GMTFri, 23 Nov 2007 06:04:14 GMT60Hibernate Annotations½W”è®°http://www.aygfsteel.com/gkm422/archive/2007/11/21/162214.html哀伤血èˆ?/dc:creator>哀伤血èˆ?/author>Wed, 21 Nov 2007 13:42:00 GMThttp://www.aygfsteel.com/gkm422/archive/2007/11/21/162214.htmlhttp://www.aygfsteel.com/gkm422/comments/162214.htmlhttp://www.aygfsteel.com/gkm422/archive/2007/11/21/162214.html#Feedback0http://www.aygfsteel.com/gkm422/comments/commentRss/162214.htmlhttp://www.aygfsteel.com/gkm422/services/trackbacks/162214.htmlDescn属性不存在于数据库中,用@Transient 注明  
------------------------------------------  
1,需� Hibernate库文�Hibernate Annotations�ejb3-persstence.jar(Java 持久化API)  
sessionFactory=new AnnotationConfiguration().buildSessionFactory();  
------------------------------------------  
2,<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">  
     <property name="annotatedClasses">  
      <list>  
        <value>com.onjava.modelplanes.domain.PlaneType</value>  
      </list>  
     </property>  
 </bean>  
------------------------------------------  
1,@Entity  
@Table(name = "teacher_info")  
@IdClass(UUIDHexGenerator.class)   
public class UserMember implements java.io.Serializable  
2,@entity通过getters/settersæ–ÒŽ³•讉K—®åQŒæˆ–直接讉K—®ä»–的成员变量。 Â?
@Entity(access = AccessType.PROPERTY)  
@Entity(access = AccessType.FIELD)  
------------------------------------------  
映射标识½W¦Â Â?
1,@Id  
@GeneratedValue(strategy = GenerationType.AUTO)  
private String id;  
2,@Id(generate=GeneratorType.SEQUENCE, generator='SEQ_STORE')  
3,@Id(generate=GeneratorType.IDENTITY)  
------------------------------------------  
映射属性 �
1,@Transient  
2,@Column(name="PLANE_ID", length=80, nullable=true)  
3,@Basic(fetch = FetchType.LAZY)  
4,@Serialized 凡标识@Serialized的属性将被序列化  
public Country getCountry() { ... }  
5,@Lob标识了存储对象可能是个CLOB或者BLOB。 �
@Lob(type=LobType.CLOB)  
public String getFullText(){return fullText;}  
@Lob(type = LobType.BLOB)  
public byte[] getFullCode() {return fullCode;}  
@Version 定义乐观锁机制ä‹É用 Â?
------------------------------------------  
å…Œ™”关系:  
一、一对一:  
1,@OneToOne(mappedBy = "address")      
public User getUser() {      
      return user;      
}     
1、两辚wƒ½å®šä¹‰äº†@OneToOneåQŒä½†éƒ½æ²¡æœ‰å®šä¹‰mappedBy,则userå’Œaddress表都会生成到å¯ÒŽ–¹çš„外键,双方都是˜q™ä¸ªå…³ç³»çš„æ‹¥æœ‰è€…。  Â?
2、两辚wƒ½å®šä¹‰äº†@OneToOneåQŒå¦‚æžœuser定义了mappedByåQŒåˆ™åœ¨address表生成到user的外键,address是这个关¾pÈš„æ‹¥æœ‰è€…;如果address定义  
了mappedByåQŒåˆ™åœ¨user表生成到address的外键,user是这个关¾pÈš„æ‹¥æœ‰è€…。 Â?
  
二、一对多,多对一:  
2,@ManyToOne( cascade = {CascadeType.PERSIST, CascadeType.MERGE} )  
3,@OneToMany(mappedBy="planeType",cascade=CascadeType.ALL, fetch=FetchType.EAGER)  
@OrderBy("name")  
public List<ModelPlane> getModelPlanes() {  
    return modelPlanes;  
}  
其中定义mappedBy的是@OneToMany,也就是说One˜q™ä¸€æ–ÒŽ˜¯å…³ç³»çš„æ‹¥æœ‰è€…。Many一方的表中生成到关联类的外键。  Â?
  
三、@ManyToMany    
private Set authors = new HashSet<Author>();      
@ManyToMany     
public Set<Author> getAuthors(){      
return authors;      
}       
     
private Set books = new HashSet<Book>();       
@ManyToMany(mappedBy="authors")      
public Set<Book> getBooks(){      
return books;      
}      
@ManyToMany会生成中间表åQŒå…·ä½“表名和字段可以通过@AssociationTable来定义,默认的就可以了,同样关系的非拥有者,需要定义mappedBy属性。 Â?
------------------------------------------  
命名查询  
你也可以通过注解,利用@NameQueries和@NameQuery注解,如下:  
@NamedQueries(  
{   
@NamedQuery(name="planeType.findAll",query="select p from PlaneType p" ),  
@NamedQuery(name="planeType.delete",query="delete from PlaneType where id=:id" )  
 }  
)  
------------------------------------------  
内嵌对象åQˆç»„ä»Óž¼‰Â Â 
@Embedded({  
   @AttributeOverride(name='iso2', column = @Column(name='bornIso2') ),  
   @AttributeOverride(name='name', column = @Column(name='bornCountryName') )  
         })  
    Country bornIn;  
    ...  
}  
  
@Embeddable(access = AccessType.FIELD)  
public class Address implements Serializable {  
    String city;  
    Country nationality;  
}  
  
  
@Embeddable  
public class Country implements Serializable {  
    private String iso2;  
    private String name;  
  
    public String getIso2() { return iso2; }  
    public void setIso2(String iso2) { this.iso2 = iso2; }  
  
    @Column(name='countryName')  
    public String getName() { return name; }  
    public void setName(String name) { this.name = name; }  
    ...  
}  
------------------------------------------  
自定义的主键生成½{–略  
@javax.persistence.GeneratedIdTable(  
   name='GEN_TABLE',  
  table = @Table(name='GENERATOR_TABLE'),  
    pkColumnName = 'key',  
      valueColumnName = 'hi'  
)  
  
@javax.persistence.TableGenerator(  
    name='EMP_GEN',  
    tableName='GEN_TABLE',  
    pkColumnValue='EMP',  
    allocationSize=20  
)  
@javax.persistence.SequenceGenerator(  
    name='SEQ_GEN',  
    sequenceName='my_sequence'  
)  
package org.hibernate.test.metadata;  

]]>
Ö÷Õ¾Ö©Öë³ØÄ£°å£º »áÍ¬ÏØ| ÇÒÄ©ÏØ| ÎÚÀ­ÌØÇ°Æì| ÐËÉ½ÏØ| ¶´Í·ÏØ| ÈýÃ÷ÊÐ| ÌÁ¹ÁÇø| »áÔóÏØ| ÎÚÀ­ÌØÖÐÆì| èï´¨ÏØ| Ñ®ÒØÏØ| ÂÖÌ¨ÏØ| ʱÉÐ| ³¤ÄþÇø| ÖêÖÞÊÐ| פÂíµêÊÐ| ÁÖÖÜÏØ| ÁÖÖ¥ÏØ| å´²ýÏØ| ¾°µÂÕòÊÐ| °¢°ÓÏØ| ³±°²ÏØ| µ÷±øÉ½ÊÐ| ÍòÄþÊÐ| ³ç×óÊÐ| ÀϺӿÚÊÐ| ÓÀÄêÏØ| ÁºÆ½ÏØ| ÎäÄþÏØ| ÎàÖÝÊÐ| ÌÒÔ°ÊÐ| ¡²ýÏØ| ÁÙ½­ÊÐ| ÐËÒåÊÐ| ÓÀ²ýÏØ| ÎäÏçÏØ| ÄÏÀÖÏØ| ̨¶«ÊÐ| ¡»¯ÏØ| ÓÀË³ÏØ| ³Ê¹±ÏØ|