`

BaseEntity实体的继承:@MappedSuperclass

    博客分类:
  • java
 
阅读更多
在创建实体时,经常有重复的id和时间的属性要创建,所以想弄一个父类,然后所有实体继承,但是碰到了问题,就用到了@MappedSuperclass,它的的用法
用在实体的继承过程中的父类上;
如:
IdEntity.java
package com.zpf.test.Entity;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.MappedSuperclass;

/**
 * 基础实体类
 * 
 * @author zpf
 * 
 */
@MappedSuperclass
public class IdEntity implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	private long id;

	@Column(updatable = false)
	private Date createDate;
	private Date modifyDate;

	public long getId() {
		return id;
	}

	public void setId(long id) {
		this.id = id;
	}

	public Date getCreateDate() {
		return createDate;
	}

	public void setCreateDate(Date createDate) {
		this.createDate = createDate;
	}

	public Date getModifyDate() {
		return modifyDate;
	}

	public void setModifyDate(Date modifyDate) {
		this.modifyDate = modifyDate;
	}

}



package com.zpf.test.Entity;

import java.io.Serializable;

import javax.persistence.Entity;
import javax.persistence.Table;

/**
 * 用户实体
 * @author zpf
 *
 */
@Entity
@Table(name="tb_user")
public class User extends IdEntity implements Serializable{

	private static final long serialVersionUID = 1L;

	private String name;
	
	private String sex;
	
	private int age;

	public String getName() {
		return name;
	}

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

	public String getSex() {
		return sex;
	}

	public void setSex(String sex) {
		this.sex = sex;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}
	
	
}



这样就会生成tb_user表而且包含父类属性,否则只会生成一张identity表,字段有:id,crearedate,modifydate,name,sex,age
0
1
分享到:
评论

相关推荐

    hibernate常见异常针对于jpa

    在这种情况下,`BaseEntity`可以被标记为`@MappedSuperclass`,而`User`和`Product`则分别使用`@Entity`注解。 #### 四、@ManyToOne与@OneToMany关联关系 在Hibernate中,`@ManyToOne`和`@OneToMany`用来定义实体...

    typeorm_tricks

    本教程的初始状态是一个简单的user实体,如下所示: @Entity( " users " )export default class User extends BaseEntity { @PrimaryGeneratedColumn( " uuid " ) id: string ; @Column () name: string ; @Column ...

    Springboot集成JPA,开箱即用.pdf

    @MappedSuperclass public abstract class BaseEntity implements Serializable { @Column(name = "created_time") private Date createdTime; // 其他通用字段... // getter 和 setter 方法... } ``` #### ...

    kellerMapper.jar

    实体类继承 BaseEntity 并使用注解 @TableAttribute(name = "user_info",comment = "用户信息表") public class UserInfo extends BaseEntity { // 标注是自增主键 @KeyAttribute(autoIncr = true) // 标注是...

    (2)Hibernate3.2 中的类继承关系

    在Hibernate中配置类继承关系,我们需要在实体类上使用`@Inheritance`注解,并指定继承策略。例如,使用单表继承: ```java @Entity @Inheritance(strategy = InheritanceType.SINGLE_TABLE) @DiscriminatorColumn...

    Hibernate继承映射的第一种策略:每棵类继承树对应一张表

    4. **持久化和查询**:现在可以像操作普通实体一样,对这些继承类进行保存、更新和查询操作。Hibernate会自动处理类型标识字段,确保正确地映射到相应的子类。 ### 性能和设计考虑 单一表继承策略具有以下优缺点:...

    ExtJS实现多文件上传UploadDialog For ExtJS3.x

    接下来,我们创建一个基础实体接口`BaseEntity`,这个接口定义了获取ID的方法,这是大多数数据库实体类通用的属性。例如: ```java package com.xy.entity; public interface BaseEntity { public long getId(); ...

    JPA入门(一)

    - **持久化上下文(Persistence Context)**: 保存实体的内存状态,负责实体的生命周期管理和事务同步。 **4. JPA配置** JPA的配置可以通过XML(persistence.xml文件)或Java配置(使用@Configuration和@EntityScan...

    spring boot实现软删除的示例代码

    @MappedSuperclass public abstract class BaseEntity { private Boolean deleted = false; // setter 和 getter } ``` 2. **使用@SQLDelete注解**: 在需要实现软删除的实体类上使用`@SQLDelete`注解,指定当...

    使用泛型和反射,打造我们的完美实体基类

    在实体基类中使用泛型,我们可以定义一个通用的基类,如`BaseEntity<T>`,其中`T`代表实体的具体类型。这样,子类如`UserEntity extends BaseEntity<User>`就能自动继承并利用这个类型信息。 接下来,我们讨论反射...

    C# 通用实体类总结,比较全

    然后,我们可以创建具体的实体类,如`User`,继承自`BaseEntity<int>`: ```csharp public class User : BaseEntity { public string Name { get; set; } public string Email { get; set; } // 其他用户相关...

    BaseEntity工具类

    集成字符串的各种处理,各种切割,各种替换

    数据层 万能实体类方法

    而万能实体类方法则是将这些共性操作抽象出来,形成一个统一的接口或基类,例如`IEntity`或`BaseEntity`。这样,无论实体类如何变化,我们只需要针对这个接口或基类编写操作,而无需为每个实体类单独写一套数据库...

    hibernate-annotations-3.4.0.jar

    4. **继承关系注解**:通过`@Inheritance`和`@DiscriminatorColumn`注解,可以实现单表继承或多表继承策略,使得子类实例的数据可以存储在同一张表或不同的表中。例如: ```java @Inheritance(strategy = ...

    深入浅出Hibernate(含源码)

    实体类通常继承自Hibernate的BaseEntity,包含@Id标识主键字段。 5. **HQL(Hibernate Query Language)**:这是Hibernate专有的查询语言,类似于SQL,但更面向对象。HQL可以用来查询、更新和删除实体,支持复杂的...

    221219-001ShopDemo(数据及其表的自动生成)

    /// 1、所有的具体实现实体通过继承该抽象实体,以获取相应的的长整型编号值。 /// 2、为所有的具体实现实体的反射/依赖注入实例化操作,提供1个通用的抓手。 /// /// public abstract class BaseEntity { ...

    mybatis-plus-demo.zip

    - 实体类:创建与数据库表对应的实体类,通常会继承 `BaseEntity` 类,以便利用 MyBatis-Plus 提供的通用方法。 - CRUD 接口:创建 Mapper 接口,不需要编写任何 SQL,直接使用 MyBatis-Plus 提供的方法即可。 - ...

    springboot2.2.2集成mybatis-plus

    Mybatis-Plus中的实体类需要继承`BaseEntity`,并包含与数据库表字段对应的属性。同时,为每个表创建一个Mapper接口,这个接口会自动继承`BaseMapper`,无需编写任何SQL语句。 ```java import ...

    230211-037shopDemo(菜单实体及其约束规则的定义实现)

    public class Menu : BaseEntity { #region 属性 /// /// 【权限编号】 /// /// 摘要: /// 获取/设置权限实体1个指定实例的长整型编号值。 /// /// public long? PermissionId { get; set; } /// ...

    hibernate.rar

    3. 定义实体类:实体类需要继承Hibernate的BaseEntity,并通过注解或XML文件定义映射关系。 4. 创建SessionFactory:基于配置文件创建SessionFactory对象,它是线程安全的,整个应用只需要一个。 5. 获取Session:从...

Global site tag (gtag.js) - Google Analytics