hibernate 配置文件:
<session-factory>
<property name="connection.username">root</property>
<property name="connection.url">jdbc:mysql://localhost:3306/s2sh_drp</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="myeclipse.connection.profile">s2sh_drp</property>
<property name="connection.password">root</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.hbm2ddl.auto">update</property>
<mapping class="cn.blueram.drp.model.User"/>
<mapping class="cn.blueram.drp.model.Client"/>
<mapping class="cn.blueram.drp.model.DataDict"/>
<mapping class="cn.blueram.drp.model.ClientLevel"/>
</session-factory>
实体类ClientLevel
@Entity
@DiscriminatorValue("client_level")
public class ClientLevel extends DataDict{
public ClientLevel() {
super();
}
}
实体类Client
@Entity
@Table(name="t_client")
@Proxy(lazy=true)
public class Client {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="id")
private int id;
@ManyToOne(targetEntity=cn.blueram.drp.model.Client.class)
@JoinColumn(name = "pid")
private Client pid;
@Column(name="children")
@OneToMany(mappedBy="pid" ,
targetEntity=cn.blueram.drp.model.Client.class ,
fetch=FetchType.LAZY)
private Set<Client> children;
@Column(name="name")
private String name;
@Column(name="clientId" , nullable=false)
private String clientId;
@OneToOne
@JoinColumn
private ClientLevel clientLevel;
@Column(name="bankAcctNo")
private String bankAcctNo;
@Column(name="contactTel")
private String contactTel;
@Column(name="address")
private String address;
@Column(name="zipCode")
private String zipCode;
@Column(name="isleaf")
private boolean leaf;
@Basic
@Column(name="isClient")
private boolean isClient;
数据字典实体类:DataDict
@Entity
@Table(name="t_data_dict")
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(
name="category",
discriminatorType = DiscriminatorType.STRING
)
public class DataDict implements Serializable{
public DataDict(){}
@Id
@GeneratedValue(generator = "paymentableGenerator")
@GenericGenerator(name = "paymentableGenerator", strategy = "assigned")
private String id;
@Basic
@Column(name="name")
private String name;
遇到的问题:
mapped with insert="false" update="false"
在第一次改动中忘记把DataDict中的属性catagory去掉
但是在映射时,没有问题,太粗心了
由于遇到上面的问题在查找过程中把按照如下实现,但是还是不行
@MappedSuperclass
public abstract class AbstractEntity implements Serializable
构建抽象类,但是出现了问题,数据库多出了不需要的clientlecel表,并且client插不进去。
查找资料,去掉@MappedSuperclass,问题解决
参考:
http://www.oracle.com/technology/global/cn/products/ias/toplink/jpa/resources/toplink-jpa-annotations.html#MappedSuperclass
hibernnate 官方实例
分享到:
相关推荐
现在我们公司在做web项目的时候,已经不用*.hbm.xml这种映射文件了,都是用Annotation(注解)方式来完成实体与表之间的映射关系,这样看起来比用xml文件来映射更具有可读性,自我感觉以后Hibernate Annotation的...
hibernate annotation中文文档
《Hibernate注解与Hibernate3深度解析》 在Java开发领域,Hibernate作为一种强大的对象关系映射(ORM)框架...通过熟练掌握这些注解,开发者可以更好地运用Hibernate进行数据持久化操作,实现高效、灵活的数据库交互。
Hibernate是一款强大的开源Java持久化框架,它简化了数据库与Java对象之间的交互,而注解是Hibernate实现ORM的一种方式,通过在Java类和属性上添加特定的注解,可以将数据模型自动映射到数据库表。 1. **注解基础**...
总之,Hibernate Annotation库是Java开发中不可或缺的工具,它通过注解的方式简化了ORM的过程,使得开发者能更专注于业务逻辑,而不是底层的数据操作细节。通过理解并熟练使用这些注解,可以有效地提升开发效率和...
Hibernate Annotation是Hibernate框架的一个扩展,它允许开发者直接在Java类和属性上使用注解(Annotations),来定义实体类与数据库表之间的映射关系。相比于XML配置,注解提供了一种更加内聚和直接的方式,使得...
在Hibernate中,注解(Annotation)是一种声明式的方法,用于配置实体类、属性以及它们与数据库表之间的映射关系。本文将深入探讨“最全的Hibernate Annotation API文档”中的关键知识点。 一、实体类(Entity) 在...
Hibernate Annotation
而Hibernate Annotation是Hibernate的一个重要特性,它通过在Java类和字段上添加注解来简化数据库表和实体类之间的映射配置。这篇博文将带你了解如何使用Hibernate Annotation进行开发。 首先,我们需要理解Java...
通过不断改进实例并实践,我们可以更好地理解和掌握Hibernate Annotation的精髓,实现更高效、更便捷的Java持久化编程。在后续的学习笔记中,我们将继续探索更多关于Hibernate Annotation的实用技巧和高级特性。
本文将深入探讨如何结合 Spring 的注解配置与 Hibernate 实现数据持久化,通过一个实际的 demo 示例来阐述整个过程。 首先,Spring 框架以其依赖注入(Dependency Injection, DI)和面向切面编程(Aspect-Oriented ...
hibernate 注解 annotation 教程
Hibernate annotation 3.4 api CHM
**正文** 《Hibernate Annotation API...通过合理运用注解,开发者能够高效地管理数据层,实现面向对象编程和关系型数据库之间的无缝对接。在实际开发中,理解并熟练掌握这些注解,能够提升开发效率,降低维护成本。
### HibernateAnnotation 技术概述 在Java开发领域中,Hibernate框架是进行对象关系映射(Object-Relational Mapping,简称ORM)的一种非常流行的工具。它能够帮助开发者将面向对象的模型与关系型数据库进行桥接,...
【标题】:深入理解Hibernate Annotation及其使用 【描述】:本文将全面介绍Hibernate Annotation的使用,包括事务管理和声明式事务处理,以及如何通过注解简化数据库持久化操作。 【标签】:Hibernate, ...
标题“Hibernate distribution and annotation”涉及到的是Hibernate ORM框架的一个特定版本及其相关的注解功能。Hibernate是一个流行的Java对象关系映射(ORM)工具,它允许开发者使用面向对象的编程模型来操作...
在数据库设计中,外键(Foreign Key)是用来建立和加强两个表之间联系的字段,它指向另一个表的主键,确保数据的一致性和完整性。在一对一关系中,两个实体之间通常会有一个共享的唯一标识,即一个实体的主键同时...