Play!框架下JPA @OneToMany @ManyToOne注解实例

2024-03-30 15:48

本文主要是介绍Play!框架下JPA @OneToMany @ManyToOne注解实例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Use Case :后台用户(User),杂志(Magazine)。

 

一个后台用户可以创建很多杂志(@OneToMany)。

一本杂志被一个后台用户创建(@ManyToOne)。

 

其实个人感觉还是Rails里的belongs_toManyToOne 更加符合语义。

 

首先建立杂志类:

/*** 杂志类*/
@Entity
public class Magazine extends Model
{// 主题@Requiredpublic String topic;// 刊号@Requiredpublic int serial;// 简介@Requiredpublic String summary;// 发布日期@Requiredpublic String date;// 被一个后台用户创建@ManyToOnepublic User creator;}
 

其次是后台用户类:

@Entity
public class User extends Model
{// 用户名public String username;// 密码public String password;// 是否是管理员public int isAdmin;// 主数据库的idpublic long common_user_id;// 添加过很多杂志@OneToMany(mappedBy = "creator")public List<Magazine> magazines;
}

 

可以看到,

	@OneToMany(mappedBy = "creator")public List<Magazine> magazines;

 

说明

1. 两个类之间是通过creator来关联,所以数据库不会生成一个中间表。

 

2. 因为Magazine类对于@ManyToOne没有额外修饰, 所以数据库中magazine表会根据约定自动产生一个creator_id(也就是属性"creator"+_id)并生成外键指向user表的id,通过magazine表的creator_id和user表的id的join来获取相关的数据。

 

 

如果改成这样

@ManyToOne
@JoinColumn(name = "main_creator_id", referencedColumnName = "common_user_id")
public User creator;

 

那么则magazine表会产生一个main_creator_id(而不是creator_id),并生成外键指向user表的common_user_id。

 

 

来自:http://thierry-xing.iteye.com/blog/1443317

这篇关于Play!框架下JPA @OneToMany @ManyToOne注解实例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/861900

相关文章

Go异常处理、泛型和文件操作实例代码

《Go异常处理、泛型和文件操作实例代码》Go语言的异常处理机制与传统的面向对象语言(如Java、C#)所使用的try-catch结构有所不同,它采用了自己独特的设计理念和方法,:本文主要介绍Go异... 目录一:异常处理常见的异常处理向上抛中断程序恢复程序二:泛型泛型函数泛型结构体泛型切片泛型 map三:文

Spring Boot/Spring MVC核心注解的作用详解

《SpringBoot/SpringMVC核心注解的作用详解》本文详细介绍了SpringBoot和SpringMVC中最常用的15个核心注解,涵盖了请求路由映射、参数绑定、RESTfulAPI、... 目录一、Spring/Spring MVC注解的核心作用二、请求映射与RESTful API注解系列2.1

Springmvc常用的注解代码示例

《Springmvc常用的注解代码示例》本文介绍了SpringMVC中常用的控制器和请求映射注解,包括@Controller、@RequestMapping等,以及请求参数绑定注解,如@Request... 目录一、控制器与请求映射注解二、请求参数绑定注解三、其他常用注解(扩展)四、注解使用注意事项一、控制

springboot+mybatis一对多查询+懒加载实例

《springboot+mybatis一对多查询+懒加载实例》文章介绍了如何在SpringBoot和MyBatis中实现一对多查询的懒加载,通过配置MyBatis的`fetchType`属性,可以全局... 目录springboot+myBATis一对多查询+懒加载parent相关代码child 相关代码懒

C++中的解释器模式实例详解

《C++中的解释器模式实例详解》这篇文章总结了C++标准库中的算法分类,还介绍了sort和stable_sort的区别,以及remove和erase的结合使用,结合实例代码给大家介绍的非常详细,感兴趣... 目录1、非修改序列算法1.1 find 和 find_if1.2 count 和 count_if1

MySQL中如何求平均值常见实例(AVG函数详解)

《MySQL中如何求平均值常见实例(AVG函数详解)》MySQLavg()是一个聚合函数,用于返回各种记录中表达式的平均值,:本文主要介绍MySQL中用AVG函数如何求平均值的相关资料,文中通过代... 目录前言一、基本语法二、示例讲解1. 计算全表平均分2. 计算某门课程的平均分(例如:Math)三、结合

Spring Boot整合Redis注解实现增删改查功能(Redis注解使用)

《SpringBoot整合Redis注解实现增删改查功能(Redis注解使用)》文章介绍了如何使用SpringBoot整合Redis注解实现增删改查功能,包括配置、实体类、Repository、Se... 目录配置Redis连接定义实体类创建Repository接口增删改查操作示例插入数据查询数据删除数据更

SpringBoot基于注解实现数据库字段回填的完整方案

《SpringBoot基于注解实现数据库字段回填的完整方案》这篇文章主要为大家详细介绍了SpringBoot如何基于注解实现数据库字段回填的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以了解... 目录数据库表pom.XMLRelationFieldRelationFieldMapping基础的一些代

Vue3视频播放组件 vue3-video-play使用方式

《Vue3视频播放组件vue3-video-play使用方式》vue3-video-play是Vue3的视频播放组件,基于原生video标签开发,支持MP4和HLS流,提供全局/局部引入方式,可监听... 目录一、安装二、全局引入三、局部引入四、基本使用五、事件监听六、播放 HLS 流七、更多功能总结在 v

Spring的基础事务注解@Transactional作用解读

《Spring的基础事务注解@Transactional作用解读》文章介绍了Spring框架中的事务管理,核心注解@Transactional用于声明事务,支持传播机制、隔离级别等配置,结合@Tran... 目录一、事务管理基础1.1 Spring事务的核心注解1.2 注解属性详解1.3 实现原理二、事务事