`
smhx
  • 浏览: 76392 次
  • 性别: Icon_minigender_1
  • 来自: 昆明
社区版块
存档分类
最新评论

使用jpa注解实现映射组件类型的集合

 
阅读更多

主类集合的注解:

  @ElementCollection(fetch = FetchType.LAZY)
    @CollectionTable(name = "info", joinColumns = @JoinColumn(name = "user_id"))
    @AttributeOverride(name = "listOrder", column = @Column(name = "list_order"))
    @OrderBy(clause = "list_order desc")

 

元素类就是普通的pojo

 

主类:

@Entity
@Table(name = "users")
public class SysUser implements java.io.Serializable {

    private static final long serialVersionUID = -7241872866011395419L;
    private String id;
    private String userName;
    private Integer age;
    private List<Event> events = new ArrayList<Event>();
    private List<Info> infos = new ArrayList<Info>();

    public SysUser() {

    }

    @GenericGenerator(name = "generator", strategy = "uuid")
    @Id
    @GeneratedValue(generator = "generator")
    @Column(name = "ID", unique = true, nullable = false, length = 32)
    public String getId() {
        return id;
    }

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

    @Column(name = "age", nullable = true)
    public Integer getAge() {
        return age;
    }

    @Column(name = "user_name", nullable = true, length = 250)
    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

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

    @OneToMany(mappedBy = "user", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
    public List<Event> getEvents() {
        return events;
    }

    public void setEvents(List<Event> events) {
        this.events = events;
    }

    @ElementCollection(fetch = FetchType.LAZY)
    @CollectionTable(name = "info", joinColumns = @JoinColumn(name = "user_id"))
    @AttributeOverride(name = "listOrder", column = @Column(name = "list_order"))
    @OrderBy(clause = "list_order desc")
    public List<Info> getInfos() {
        return infos;
    }

    public void setInfos(List<Info> infos) {
        this.infos = infos;
    }

}

 

 

元素类:

public class Info implements Serializable {

    private String first;
    private String last;
    private Integer listOrder;

    public Info() {

    }

    public String getFirst() {
        return first;
    }

    public void setFirst(String first) {
        this.first = first;
    }

    public String getLast() {
        return last;
    }

    public void setLast(String last) {
        this.last = last;
    }

    public Integer getListOrder() {
        return listOrder;
    }

    public void setListOrder(Integer listOrder) {
        this.listOrder = listOrder;
    }

}

分享到:
评论

相关推荐

    jpa实现数据库操作

    - **注解配置**: 使用Java注解(@Entity, @Table, @Id等)在实体类上定义数据库映射。 - **XML配置**: 通过persistence.xml文件定义实体、实体管理器工厂和其他配置信息。 - **混合配置**: 结合注解和XML,根据...

    JPA讲解视频

    3. **强大的映射功能**:Hibernate支持更多的映射类型,如集合映射、组件映射等,以及更灵活的关联映射策略。 4. **便捷的数据验证**:通过`@Valid`注解,Hibernate Validator可以对数据进行验证,确保输入的有效性...

    在JavaSE下使用HibernateJPA所需的jar包

    5. **Hibernate Annotations**: 提供了Java Persistence API注解的实现,使得开发者可以通过注解轻松地进行对象关系映射。 6. **Hibernate Commons Annotations**: 提供了一些通用的注解,扩展了Java Persistence ...

    jpa2.0jar包

    - "hibernate-JPA"可能是指Hibernate作为JPA的实现, Hibernate提供了丰富的功能,包括第一级缓存、第二级缓存、事务管理等,使得JPA的使用更加方便。 总之,JPA 2.0为Java开发者提供了强大且灵活的ORM解决方案,...

    jpa之使用hibernate示例代码

    JPA通过接口定义了如何在Java对象和数据库记录之间建立映射,使得开发者可以使用面向对象的方式来操作数据库。 **Hibernate**是JPA的一个实现,它是一个开源的对象关系映射框架。Hibernate不仅实现了JPA规范,还...

    JPA底层

    深入理解JPA,需要掌握实体关系的映射、懒加载和级联操作、多态性、继承、复合主键、集合映射等高级特性。同时,了解如何结合Spring框架使用JPA,以及在实际项目中优化JPA的性能,例如缓存策略、批处理操作等,都是...

    JPA(jpa项目所需包)

    9. **hibernate-annotations.jar**:这是Hibernate的注解库,提供了JPA规范中定义的注解,如@Entity、@Table、@Column等,使得开发者可以使用注解来定义对象-关系映射。 10. **hibernate-entitymanager.jar**:...

    JPA 开发所要的全部jar包

    在Java应用中,使用JPA需要依赖一系列的jar包,这些jar包包含了JPA规范、实现库和其他必要的组件。在"JPA开发所要的全部jar包"中,你可能找到了以下关键的组件: 1. **Java Persistence API (javax.persistence.jar...

    JPA所有教学资料.rar

    通过这些注解,开发者无需编写大量的SQL语句,就能实现对象关系映射(ORM)。 **"J2EE问题(关于hibernate和JPA).txt"** 文件可能包含了开发者在实际项目中遇到的问题,这些问题可能涉及到JPA和Hibernate的集成,...

    使用springboot+jpa+redis+bootstrap 可运行项目

    在Spring Boot中,JPA通常与特定的数据库提供商如Hibernate一起使用,以实现数据库操作。 3. **Redis**: Redis是一个开源的内存数据结构存储系统,它可以作为数据库、缓存和消息中间件。在本项目中,Redis可能被...

    JPA学习系列中所有的源文件

    例如,可能包括实体类的定义、Repository接口的实现、JPA注解的使用等。这有助于开发者更好地掌握如何创建和配置实体,以及如何利用JPA进行数据的CRUD(创建、读取、更新、删除)操作。 **工具应用** 在JPA的学习和...

    JPA API CHM

    EntityManager是JPA的核心组件,它负责管理Entity对象的生命周期,包括创建、查找、更新和删除。例如: ```java EntityManagerFactory emf = Persistence.createEntityManagerFactory("persistence-unit-name"); ...

    SpringBoot+jpa+redis

    2. 实体类(Entity)文件,使用JPA注解描述了数据库表的映射。 3. Repository接口,继承自Spring Data JPA提供的接口,用于数据库操作。 4. Redis相关的配置和工具类,可能包含了`RedisTemplate`的配置和使用示例。 ...

    Spring data JPA笔记资料

    Spring Data JPA通过注解如@Entity、@Id等实现ORM,使得Java类可以直接映射到数据库表。 - @Entity:标记在Java类上,表示该类是一个实体类,将映射到数据库表。 - @Id:标识类中的字段为主键,对应数据库表的主键...

    Java EE 6企业级应用开发教程:第10章 JPA.ppt

    Java Persistence API (JPA) 是Java EE 6中用于对象关系映射(ORM)的重要组件,它提供了一个标准的API,使得开发人员可以方便地将Java对象持久化到关系数据库中,解决了不同ORM框架之间的兼容性问题。JPA不仅适用于...

    支持hibernate+jpa开发的jar包

    JPA通常与JTA结合使用,以实现事务级别的数据操作。 `junit.jar`是单元测试框架JUnit的库,它是Java开发者进行测试驱动开发的重要工具,用于验证代码功能是否正确。在进行Hibernate和JPA的开发时,单元测试能够确保...

    基于springboot+jpa实现java后台api接口,点餐系统.zip

    在本项目中,"基于springboot+jpa实现java后台api接口,点餐系统.zip",开发者采用Spring Boot框架和Java Persistence API(JPA)来构建一个功能完善的点餐系统。这个系统通过API接口对外提供服务,使得前端或者移动...

    JPA学习教程(多个文件)

    - **集合映射**: 如`List`、`Set`或`Map`等类型的属性可以用来映射数据库表的集合字段。JPA提供了多种策略来处理集合的生命周期和性能。 ### 9. 批量操作 - **批量操作**: 可以通过`EntityManager`的方法(如`...

    jdk 1.8 springmvc+hibernate+springData jpa基本框架.rar

    在这个项目中,你可能会看到`Repository`接口,如`UserRepository.java`,以及对应的实体类和JPA注解。 **JDK 1.8** 该项目使用的是Java Development Kit的1.8版本,也称为Java 8。Java 8引入了许多新特性,比如...

    springboot集成mybatis、jpa、redis、mongodb,对不同数据库进行操作的实例.zip

    通过在实体类上使用@Entity注解,我们可以轻松地将Java对象映射到数据库表。同时,Spring Data JPA通过Repository接口提供了丰富的查询功能。添加spring-boot-starter-data-jpa依赖后,只需配置数据源和JPA供应商...

Global site tag (gtag.js) - Google Analytics