`
liangguanhui
  • 浏览: 112501 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

有一个关于Hibernate配置的问题

阅读更多
我是使用Annontation mapping的,
有一个父类叫TeacherRefBase,定义如下:
@MappedSuperclass
class TeacherRefBase implements Serializable {

    ..........
   
    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    public long getId() {
        return id;
    }

    @ManyToOne(targetEntity=Teacher.class)
    @JoinColumn(name="teacherId")
    @NotNull
    public Teacher getTeacher() {
        return teacher;
    }
}
这里把TeacherRefBase join到 Teacher。
然后在来一个

@MappedSuperclass
class TeacherRef implements Serializable {

    ..........
   
    public String getName() {
        return name;
    }
   
    public int getAge() {
        return age;
    }

    @OneToOne(targetEntity=Teacher.class)
    @JoinColumn(name="teacherId")
    @NotNull
    public Teacher getTeacher() {
        return teacher;
    }
}

最后来个
@Entity
@Table(name="WorkHistory")
public class WorkHistory extends TeacherRef {
    
    ........

}

这个时候启动的时候就报错
Duplicate property mapping of teacher found in WorkHistory

请问这个问题 怎么解决?
分享到:
评论
3 楼 kyo100900 2007-11-12  
liangguanhui 写道
我发现Hibernate使用标注德时候,继承时不能重写某一个属性。现在我的解决方法是把父类的getTeacher声明未@Transtimt,然后在子类重新声明Hibernate标注。
<br/>
<br/>
<br/>
继承时如果使用Hibernate扩展可以重写某一个属性的,比如:<br/>
<br/>
<br/>
@MappedSuperclass<br/>
public abstract class Father{<br/>
 <br/>
    //要在子类被重写的属性<br/>
    @Column(name = "name")<br/>
    private String name;<br/>
 <br/>
    //set, get就省略了<br/>
}<br/>
<br/>
<br/>
@Entity<br/>
@Table(name = "tbl_sub")<br/>
//重写开始<br/>
@AttributeOverride(name = "name", column = @Column(name = "sub_name"))<br/>
public class Sub extend Father{<br/>
<br/>
    //子类的其它属性<br/>
<br/>
}<br/>
<br/>
在这里,子类继承了父类的name属性,但映射的表tbl_sub不是与之对应的"name"字段,是复写的"sub_name"字段.
2 楼 elvea 2007-11-11  
还有一个问题就是MappedSuperclass标注的父类的属性在DWR中是取不到了,不知道有办法解决没有?
1 楼 liangguanhui 2007-11-10  
我发现Hibernate使用标注德时候,继承时不能重写某一个属性。现在我的解决方法是把父类的getTeacher声明未@Transtimt,然后在子类重新声明Hibernate标注。

相关推荐

    Hibernate 配置各种数据库

    下面是一个使用 properties 文件配置 Hibernate 连接数据库的示例: hibernate.connection.driver_class = org.hsqldb.jdbcDriver hibernate.connection.username = sa hibernate.connection.password = hibernate....

    hibernate配置文件详解

    Hibernate 是一个流行的 ORM(Object-Relational Mapping)框架,用于简化 Java 应用程序中的数据库交互。 Hibernate 的配置文件是其核心组件之一,用于定义 Hibernate 的运行期参数。下面我们将详细介绍 Hibernate ...

    关于hibernate配置的基本步骤

    帮助大家在配置hibernate方面提供支持

    Hibernate配置文件hibernate.cfg.xml中配置信息详解

    Hibernate配置文件hibernate.cfg.xml中配置信息详解!

    hibernate配置参数大全

    ### Hibernate配置参数详解 #### 一、数据库连接配置(JDBC) 在Hibernate中,与...以上是关于Hibernate配置参数的一些核心内容。通过合理地设置这些参数,可以有效地管理和优化Hibernate应用程序的性能和行为。

    oracle的hibernate配置文件

    `hibernate1.cfg.xml`是Hibernate配置的核心文件,它定义了数据源、连接池、持久化类、缓存策略等关键信息。以下将逐个解析这些重要部分。 1. 数据源配置: 在`hibernate1.cfg.xml`中,首先需要配置数据源。对于...

    Hibernate基本配置演示

    这篇教程将深入讲解Hibernate的基本配置过程,确保你能顺利搭建并运行一个简单的Hibernate项目。 **一、Hibernate概述** Hibernate是一个开源的ORM框架,它的主要功能是将Java对象与数据库表进行映射,从而避免了...

    JAVA 使用hibernate配置实例

    在Java开发中,Hibernate是一个非常重要的对象关系映射(ORM)框架,它简化了数据库操作,使得开发者可以使用面向对象的方式来处理数据。本教程将详细讲解如何在Java项目中配置和使用Hibernate,包括在普通Java工程...

    Hibernate配置文件加载后修改配置信息

    ### Hibernate配置文件加载后修改配置信息 在Java开发过程中,特别是在使用ORM框架如Hibernate时,开发者经常需要对配置文件中的数据库连接信息进行动态修改或加密处理。本文将详细介绍如何利用反射机制来修改已经...

    hibernate一级和二级缓存配置与详解

    一级缓存是Hibernate默认提供的缓存,它是Session级别的,每个Hibernate Session都有一个私有的、本地的一级缓存。当我们在Session中对对象进行 CRUD(创建、读取、更新、删除)操作时,这些对象会被自动放入一级...

    Hibernate配置

    例如,如果我们有一个`User`类,映射文件可能如下所示: ```xml &lt;hibernate-mapping&gt; &lt;/hibernate-mapping&gt; ``` 这里,`User`类的每个属性对应数据库表`users`的列,`id`是主键,使用`native`生成...

    hibernate--5.Hibernate配置文件详解

    在Java世界中,Hibernate是一个非常流行的对象关系映射(ORM)框架,它简化了数据库操作,使得开发者可以使用面向对象的方式来处理数据。本篇将详细解析Hibernate的配置文件,帮助你深入理解其工作原理和配置过程。 ...

    hibernate配置文件

    hibernate配置文件 里面提供了连接数据库 数据库使用的方言 是否打印SQL语句 sql语句的格式 以及对象-关系映射文件的地址等

    Hibernate程序的配置文件

    在Java世界中,Hibernate是一个非常流行的持久化框架,它简化了数据库操作,使得开发者可以更加专注于业务逻辑而不是底层的SQL语句。本知识点主要聚焦于Hibernate的配置文件,它是使用Hibernate进行数据库交互的基础...

    eclipse 逆向生成hibernate配置文件

    逆向生成hibernate配置文件逆向生成hibernate配置文件逆向生成hibernate配置文件逆向生成hibernate配置文件逆向生成hibernate配置文件逆向生成hibernate配置文件

    hibernate配置图像详解

    hibernate的配置介绍,在myeclipse中配置hibernate,hibernate已经在myeclipse中了,创建工程,然后在工程中添加hibernate框架,一些设置

    hibernate--5.Hibernate配置文件详解-2

    在Java世界中,Hibernate是一个非常重要的对象关系映射(ORM)框架,它简化了数据库操作,使得开发者可以更专注于业务逻辑而不是底层的数据访问细节。本文将深入探讨Hibernate配置文件,这是使用Hibernate进行数据库...

Global site tag (gtag.js) - Google Analytics