`

Spring JPA annotation关于一对多,多对一的那些纠结

    博客分类:
  • @SSH
阅读更多

近日用到了Hibernate JPA 一对多,多对一的功能,一上午时间各种错误不断涌现,现在终于得到解决,现在写下来,以作备忘。

 

Channel.class 父类

	@OneToMany(cascade = { CascadeType.ALL }, mappedBy = "channel")
	private List<Content> contentList;

	public List<Content> getContentList() {
		return contentList;
	}

	public void setContentList(List<Content> contentList) {
		this.contentList = contentList;
	}

 Content.class 子类

 

@ManyToOne
	@JoinColumn(name = "channelId", insertable = false, updatable = false)
	private Channel channel;

	public Channel getChannel() {
		return channel;
	}

	public void setChannel(Channel channel) {
		this.channel = channel;
	}

 

 

===================================其它注解的小结==================================

注解的@Id可以放在属性上和get方法上, 建议放在方法上
一般采用jpa的注解, 因为移植性好
了解常用注解
@Entity
@Table
@GeneratedValue 默认情况下会采用auto生成方式

如果要采用uuid的生成方式,由于jpa注解不支持此种方法,则要用hibernate的注解联合起来使用
具体的用法如下:
@GenericGenerator(name="idGenerator", strategy="uuid") //这个是hibernate的注解
@GeneratedValue(generator="idGenerator") //使用uuid的生成策略

对于普通属性的注解
@Column(name="username", nullable=false, unique=true, length=30) 不为空, 唯一, 长度30
对于不想进行持久化的属性的注解
@Transient


hibernate JPA多对一关联映射
采用@ManyToOne来映射多对一

关于关联对象在表中的维护, JPA采用关联对象+ "_" + "id"方式作为字段加入表中.


一对多关联映射


mappedBy在那一端, 那一端就不维护关系
相当于hibernate中的inverse=true

采用@OneToMany


了解mappedBy属性
JoinColumn属性
TargetEntity属性


采用manyToMany映射
采用@JoinTable指定第三方表

 

 

 

分享到:
评论

相关推荐

    Hibernate annotation JPA 一对多,多对多

    在本主题中,我们将深入探讨使用Hibernate注解来实现JPA的一对多、多对多和多对一的关系映射。 1. **一对多关系**: 在现实世界中,一个老师可以教多个学生,或者一个班级可以包含多个学生,这就是典型的一对多...

    Spring Data JPA中文文档[1.4.3]_springdatajpa_erlang_waitxpf_

    **Spring Data JPA** 是一个基于 **Java** 的开源框架,它是 **Spring Framework** 的一个模块,主要用于简化 **Java Persistence API (JPA)** 的使用。JPA 是 Java 平台上的一个标准,用于管理和持久化应用程序的...

    Spring Data JPA API(Spring Data JPA 开发文档).CHM

    Spring Data JPA API。 Spring Data JPA 开发文档。 官网 Spring Data JPA API。

    spring jpa

    Spring JPA,全称为Spring Data JPA,是Spring框架的一部分,专门用于简化Java持久层的开发。它提供了一个抽象层,让开发者可以使用简洁、声明式的编程方式来操作数据库,而无需关注底层的JDBC或者ORM(对象关系映射...

    Spring Data JPA 笔记

    Spring Data JPA则是在JPA之上构建的一层抽象,它扩展了JPA的功能,提供了更多的便利。例如,Spring Data JPA支持自动化的查询生成,只需定义Repository接口,无需编写任何实现代码,就可以执行CRUD(创建、读取、...

    maven+springmvc+springjpa+hibernate

    在IT行业中,构建高效、可维护的Web应用是至关重要的,而"Maven+SpringMVC+SpringJPA+Hibernate"的组合就是一个常见的解决方案。这个组合提供了全面的开发工具和技术,帮助开发者快速构建基于Java的Web应用程序。...

    spring注解+spring data jpa文档+JPA文档.rar

    Spring框架的核心特性包括依赖注入(DI)和面向切面编程(AOP),并且它还提供了对数据库操作的支持,这主要通过Spring Data JPA和Java Persistence API(JPA)实现。 Spring注解是Spring框架中的一大特色,它极大...

    springjpa 和 spring多视图配置实例

    本实例探讨的是如何在Spring环境中整合Spring MVC、Spring Data JPA以及使用Freemarker或JSON作为多视图配置。让我们深入理解这些技术及其相互作用。 首先,Spring MVC是Spring框架的一部分,专门用于构建Web应用...

    spring jpa操作数据库 级联数据 hibernate

    - "spring-framework-2.5.zip"和"JpaManytoMany.zip"可能包含Spring 2.5版本的资料和多对多关联的JPA示例。 了解并熟练掌握这些知识点,将有助于开发人员更高效地构建基于Spring JPA的数据库驱动应用,同时也能更...

    spring整合jpa简单实例

    在现代的Java开发中,Spring框架与JPA(Java Persistence API)的结合使用已经成为了一个常见的实践,它简化了数据库操作,提供了对象关系映射(ORM)的功能。JPA是Java EE的一部分,允许开发者以面向对象的方式处理...

    Spring Data JPA的优点和难点.pdf

    - 在处理多对一、一对多、多对多等复杂关联关系时,可能会出现懒加载(LazyInitializationException)问题。为了避免这种情况,开发者需要合理设置fetch策略,比如选择eager loading或使用`@Transactional`注解确保...

    Struts2 Spring Jpa 配置测试

    6. **项目结构**:一个典型的Struts2+Spring+JPA项目会包含以下几个主要部分:Web-INF下的`web.xml`和`struts.xml`,`src/main/resources`下的`applicationContext.xml`和`persistence.xml`,以及`src/main/java`下...

    spring boot jpa security

    Spring Data JPA是Spring框架的一个模块,提供了对JPA的高级支持,包括自动配置、查询生成和仓库抽象层,使得数据库操作更加便捷。 Spring Security是一个功能强大的安全框架,用于保护基于Spring的应用程序。它...

    Spring Data JPA从入门到精通

    关联关系是数据库设计的重要组成部分,JPA提供了多种关联类型:一对一(@OneToOne)、一对多(@OneToMany)、多对一(@ManyToOne)和多对多(@ManyToMany)。这些关联可以通过`@JoinColumn`或`@JoinTable`注解进行...

    springBoot+springjpa.docx

    Spring Data JPA 是 Spring Data 项目的一部分,它提供了对 Java Persistence API (JPA) 的增强支持,使得数据访问更加简单。 ##### 1. 添加依赖 在 `pom.xml` 中添加 Spring Data JPA 和 MySQL 驱动的依赖: ```...

    JPA Annotation Reference

    JPA Annotation Reference

    Spring JPA Example

    在Spring中,我们通常使用Spring Data JPA扩展,它提供了更多的便利功能,如自动查询生成、repository抽象等。要开始使用Spring JPA,我们需要以下步骤: 1. **配置JPA**:在`application.properties`或`...

    Spring Boot+Jpa多数据源配置Demo(支持不同数据库)

    总结来说,Spring Boot + JPA 的多数据源配置需要对Spring的配置机制有深入理解,包括自动配置、bean的创建、数据源的切换等。同时,合理组织实体类和数据库访问层,确保代码的可维护性和扩展性。这个名为`...

    springdatajpa 包括jar包

    Spring Data JPA是Spring框架的一个模块,专门用于简化Java持久层的开发,它提供了一种声明式的方式来处理数据访问,极大地减少了我们编写DAO层代码的工作量。本篇将深入探讨Spring Data JPA与Struts2、Spring框架的...

Global site tag (gtag.js) - Google Analytics