`
blueram
  • 浏览: 762492 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

hibernate annotation 实现数据字典表

阅读更多

 

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 官方实例

 

 

分享到:
评论

相关推荐

    Hibernate Annotation jar

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

    hibernate annotation中文文档

    hibernate annotation中文文档

    hibernate annotation hibernate3

    《Hibernate注解与Hibernate3深度解析》 在Java开发领域,Hibernate作为一种强大的对象关系映射(ORM)框架...通过熟练掌握这些注解,开发者可以更好地运用Hibernate进行数据持久化操作,实现高效、灵活的数据库交互。

    hibernate annotation 中文文档

    Hibernate是一款强大的开源Java持久化框架,它简化了数据库与Java对象之间的交互,而注解是Hibernate实现ORM的一种方式,通过在Java类和属性上添加特定的注解,可以将数据模型自动映射到数据库表。 1. **注解基础**...

    Hibernate Annotation库

    总之,Hibernate Annotation库是Java开发中不可或缺的工具,它通过注解的方式简化了ORM的过程,使得开发者能更专注于业务逻辑,而不是底层的数据操作细节。通过理解并熟练使用这些注解,可以有效地提升开发效率和...

    Hibernate Annotation 中文文档

    Hibernate Annotation是Hibernate框架的一个扩展,它允许开发者直接在Java类和属性上使用注解(Annotations),来定义实体类与数据库表之间的映射关系。相比于XML配置,注解提供了一种更加内聚和直接的方式,使得...

    最全的Hibernate Annotation API文档

    在Hibernate中,注解(Annotation)是一种声明式的方法,用于配置实体类、属性以及它们与数据库表之间的映射关系。本文将深入探讨“最全的Hibernate Annotation API文档”中的关键知识点。 一、实体类(Entity) 在...

    Hibernate Annotation

    Hibernate Annotation

    Hibernate Annotation入门

    而Hibernate Annotation是Hibernate的一个重要特性,它通过在Java类和字段上添加注解来简化数据库表和实体类之间的映射配置。这篇博文将带你了解如何使用Hibernate Annotation进行开发。 首先,我们需要理解Java...

    Hibernate Annotation 学习笔记

    通过不断改进实例并实践,我们可以更好地理解和掌握Hibernate Annotation的精髓,实现更高效、更便捷的Java持久化编程。在后续的学习笔记中,我们将继续探索更多关于Hibernate Annotation的实用技巧和高级特性。

    sping hibernate Annotation(注释配置) demo(例子)

    本文将深入探讨如何结合 Spring 的注解配置与 Hibernate 实现数据持久化,通过一个实际的 demo 示例来阐述整个过程。 首先,Spring 框架以其依赖注入(Dependency Injection, DI)和面向切面编程(Aspect-Oriented ...

    hibernate 注解 annotation 教程

    hibernate 注解 annotation 教程

    Hibernate_annotation3.4_api.CHM

    Hibernate annotation 3.4 api CHM

    hibernate annotation api chm文件

    **正文** 《Hibernate Annotation API...通过合理运用注解,开发者能够高效地管理数据层,实现面向对象编程和关系型数据库之间的无缝对接。在实际开发中,理解并熟练掌握这些注解,能够提升开发效率,降低维护成本。

    HibernateAnnotation

    ### HibernateAnnotation 技术概述 在Java开发领域中,Hibernate框架是进行对象关系映射(Object-Relational Mapping,简称ORM)的一种非常流行的工具。它能够帮助开发者将面向对象的模型与关系型数据库进行桥接,...

    Hibernate Annotation 笔记 总结 注解

    【标题】:深入理解Hibernate Annotation及其使用 【描述】:本文将全面介绍Hibernate Annotation的使用,包括事务管理和声明式事务处理,以及如何通过注解简化数据库持久化操作。 【标签】:Hibernate, ...

    Hibernate distribution and annotation

    标题“Hibernate distribution and annotation”涉及到的是Hibernate ORM框架的一个特定版本及其相关的注解功能。Hibernate是一个流行的Java对象关系映射(ORM)工具,它允许开发者使用面向对象的编程模型来操作...

    Hibernate Annotation 唯一外键一对一双向关联

    在数据库设计中,外键(Foreign Key)是用来建立和加强两个表之间联系的字段,它指向另一个表的主键,确保数据的一致性和完整性。在一对一关系中,两个实体之间通常会有一个共享的唯一标识,即一个实体的主键同时...

Global site tag (gtag.js) - Google Analytics