`
ytffhvk
  • 浏览: 12611 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

Hiberate Annotations如何配置嵌入式组件(embedded component)

阅读更多
Hiberate Annotations如何配置嵌入式组件(embedded component)


我想用Hiberate Annotations 配置嵌入式组,但怎么改也不对,报异常,望大哥们帮小弟看一下.指点指点.谢谢了.

1.我的表结构
create table PERSONAL
(
  ID NUMBER not null,
  NAME VARCHAR2(20),
  HOME_STREET VARCHAR2(255),
  HOME_CITY VARCHAR2(255),
  HOME_PROVINCE VARCHAR2(255),
  HOME_ZIPCODE VARCHAR2(255),
  COM_STREET VARCHAR2(255),
  COM_CITY VARCHAR2(255),
  COM_PROVINCE VARCHAR2(255),
  COM_ZIPCODE VARCHAR2(255)
)

alter table PERSONAL add constraint PK_PERSONAL_ID_1 primary key (ID)


2.Personal.java
@SuppressWarnings("serial")
@Entity
@Table(name = "Personal")
@SequenceGenerator(name = "PERSONAL_SEQ", sequenceName = "PERSONAL_SEQ")
public class Personal implements Serializable {
private int id;
private String name;

@Embedded
@AttributeOverrides({
@AttributeOverride(name="street",column=@Column(name="home_street")),
@AttributeOverride(name="city",column=@Column(name="home_city")),
@AttributeOverride(name="province",column=@Column(name="home_province")),
@AttributeOverride(name="zipcode",column=@Column(name="home_zipcode"))
})
private Address homeAddress;

@Embedded
@AttributeOverrides({
@AttributeOverride(name="street",column=@Column(name="com_street")),
@AttributeOverride(name="city",column=@Column(name="com_city")),
@AttributeOverride(name="province",column=@Column(name="com_province")),
@AttributeOverride(name="zipcode",column=@Column(name="com_zipcode"))
})
private Address comAddress;

public Personal(){}

public Personal(String name,Address homeAddress,Address comAddress){
this.name = name;
this.homeAddress = homeAddress;
this.comAddress = comAddress;
}

public Address getComAddress() {
return comAddress;
}

public void setComAddress(Address comAddress) {
this.comAddress = comAddress;
}

public Address getHomeAddress() {
return homeAddress;
}

public void setHomeAddress(Address homeAddress) {
this.homeAddress = homeAddress;
}

@Id
@GeneratedValue(generator="PERSONAL_SEQ")
public int getId() {
return id;
}

@SuppressWarnings("unused")
private void setId(int id) {
this.id = id;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}
}


3.Address.java
@SuppressWarnings("serial")
@Embeddable
public class Address implements Serializable {
private String street;
private String city;
private String province;
private String zipcode;

public Address() {
  // TODO Auto-generated constructor stub
}

public Address(String street,String city,String province,String zipcode){
  this.street = street;
  this.city = city;
  this.province = province;
  this.zipcode = zipcode;
}

@Column(name="city",insertable=false, updatable=false)
public String getCity() {
  return city;
}
public void setCity(String city) {
  this.city = city;
}

@Column(name="province",insertable=false, updatable=false)
public String getProvince() {
  return province;
}
public void setProvince(String province) {
  this.province = province;
}
@Column(name="street",insertable=false, updatable=false)
public String getStreet() {
  return street;
}
public void setStreet(String street) {
  this.street = street;
}
@Column(name="zipcode",insertable=false, updatable=false)
public String getZipcode() {
  return zipcode;
}
public void setZipcode(String zipcode) {
  this.zipcode = zipcode;
}
}

分享到:
评论
1 楼 ytffhvk 2008-03-05  
真是郁闷哪.这个问题困扰了我几个小时,问题已经找到,原来是我自己马虎了,对不起大家了.
@Embedded
@AttributeOverrides({
@AttributeOverride(name="street",column=@Column(name="com_street")),
@AttributeOverride(name="city",column=@Column(name="com_city")),
@AttributeOverride(name="province",column=@Column(name="com_province")),
@AttributeOverride(name="zipcode",column=@Column(name="com_zipcode"))
})
private Address comAddress;
这段代码应该写在get方法上面.

希望在研究Hibernate Annotations的朋友,一起研究,共同学习.
我的QQ:45001700 

相关推荐

    hibernate-annotations-3.4.0.GA

    Hibernate Annotations是Hibernate 3.x系列引入的新特性,它允许开发者在Java实体类上直接使用注解来定义对象关系映射信息,替代了传统的Hibernate XML配置文件。这种注解方式提高了开发效率,减少了配置文件的维护...

    hibernate annotations3.4.0 GA.rar

    现在已经不用*.hbm.xml这种映射文件了,都是用Annotation(注解)方式来完成实体与表之间的映射关系,这样看起来比用xml文件来映射更具有可读性,自我感觉以后Hibernate Annotation的映射方式将代替hibernate 的*....

    Hibernate Annotations 中文文档

    嵌入式对象(又名组件) 2.2.2.4. 无注解之属性的默认值 2.2.. 映射主键属性 2.2.4. 映射继承关系 2.2.4.1. 每个类一张表 2.2.4.2. 每个类层次结构一张表 2.2.4.3. 连接的子类 2.2.4.4. 从父类继承的属性 2.2.5...

    hibernate annotations 中文参考手册

    ### Hibernate Annotations 中文参考手册概览 #### 版本说明 根据提供的信息,这份文档的版本为3.2.0CR1。此版本标志着Hibernate框架中的一个特定阶段,特别是关于如何利用注解(Annotations)来简化Java对象与...

    HibernateAnnotations 中文版

    Hibernate Annotations 是 Hibernate 的一个重要组成部分,它引入了注解(Annotation)机制,使得开发者无需编写 XML 配置文件,就可以实现对象和数据库表之间的映射。 ### Hibernate ORM 基础 1. **对象关系映射...

    hibernate annotations

    Hibernate Annotations是Hibernate框架的一个重要组成部分,它允许开发人员通过在Java实体类上使用注解来定义数据模型,从而避免了传统的XML配置文件。这种做法提高了代码的可读性和维护性。 **核心概念** 1. **...

    webwork hibernate annotations 三合一中文开发文档

    webwork2.1.7 中文开发文档 Hibernate Annotations参考文档-3.20中文开发文档 Hibernate_3.2.0_Reference_zh_CN中文开发文档

    hibernate 和hibernate_annotations(中文API).pdf帮助文档

    在这个“hibernate 和hibernate_annotations(中文API)帮助文档”中,我们将深入探讨Hibernate的核心概念、特性以及如何使用Hibernate Annotations进行对象的持久化。 一、Hibernate核心概念 1. 实体(Entity):在...

    hibernate-annotations

    其中,Hibernate Annotations是其核心组件之一,它通过在Java实体类上添加注解,实现了数据持久化的声明式配置。本篇将深入探讨Hibernate Annotations 3.4.0.GA版本中的关键特性、工作原理以及实际应用。 1. **...

    hibernate-annotations-3.4.0(参考文档,doc/../index.html)

    Hibernate Annotations是Hibernate框架的一个扩展,它允许开发者使用Java语言的注解(Annotations)来定义对象与数据库表之间的映射关系,替代传统的Hibernate XML配置文件。这使得代码更加简洁,更易于维护,并且与...

    hibernate annotations 3.4.0.GA API

    Hibernate Annotations是Hibernate框架的一个重要组成部分,它通过在Java实体类上添加注解,实现了元数据的声明式配置,使得代码更加简洁且易于维护。本文将深入探讨Hibernate Annotations 3.4.0.GA版本的API,揭示...

    hibernate-annotations jar包

    使用注解Annotation时用的jar包。 包括: hibernate-commons-annotations-3.3.0.ga.jar hibernate-entitymanager.jar ejb3-persistence.jar hibernate-annotations.jar

    hibernate-annotations.jar

    而`hibernate-annotations.jar`是Hibernate框架中的一个重要组件,主要负责处理对象的注解配置,使得开发者能够以更简洁的方式定义数据模型与数据库之间的映射关系。 **一、Hibernate ORM框架** Hibernate ORM是...

    hibernate-annotations 相关jar包

    在Hibernate中,Hibernate Annotations是一个重要的组成部分,它引入了JPA(Java Persistence API)的注解,使得对象-关系映射更加简洁且无需XML配置。 **一、Hibernate Annotations简介** Hibernate Annotations是...

    Hibernate Annotations Reference 中文参考手册HTML版

    **Hibernate Annotations 参考手册中文版** Hibernate 是一个流行的开源对象关系映射(ORM)框架,它允许开发者使用面向对象的编程模型来处理数据库操作。Hibernate Annotations 是 Hibernate 的一个重要组成部分,...

    hibernate annotations 中文文档

    《Hibernate Annotations 中文文档》是针对Hibernate框架注解配置的详细指南,旨在帮助开发者更深入地理解和使用Hibernate的注解功能。Hibernate是一个流行的Java对象关系映射(ORM)框架,它允许开发人员将数据库...

    hibernate_annotations(中文API,高清)

    2. **配置和初始化**:在使用Hibernate Annotations时,需要对Hibernate进行配置,以识别和加载注解。通常,这涉及到在Hibernate配置文件中指定实体扫描路径,让Hibernate知道在哪里查找被注解标注的实体类。 3. **...

    hibernate_-annotations_中文帮助文档

    `@Embeddable`和`@Embedded`注解用于处理复杂类型或组件的映射。 - **映射主键** `@Id`注解用于标识主键属性,可以结合`@GeneratedValue`生成自增序列。 - **映射继承关系** 有三种继承策略:单一表、每类一张...

    hibernate-annotations-3.4.0.GA+hibernate-distribution-3.3.2.GA-dist

    而Hibernate Annotations则是Hibernate框架的重要组成部分,它使得我们可以在实体类上直接使用注解进行对象关系映射,避免了XML配置文件的繁琐。本文将深入探讨Hibernate 3.3.2和Hibernate Annotations 3.4.0的核心...

Global site tag (gtag.js) - Google Analytics