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

相关文章

SpringBoot 获取请求参数的常用注解及用法

《SpringBoot获取请求参数的常用注解及用法》SpringBoot通过@RequestParam、@PathVariable等注解支持从HTTP请求中获取参数,涵盖查询、路径、请求体、头、C... 目录SpringBoot 提供了多种注解来方便地从 HTTP 请求中获取参数以下是主要的注解及其用法:1

深度解析Java @Serial 注解及常见错误案例

《深度解析Java@Serial注解及常见错误案例》Java14引入@Serial注解,用于编译时校验序列化成员,替代传统方式解决运行时错误,适用于Serializable类的方法/字段,需注意签... 目录Java @Serial 注解深度解析1. 注解本质2. 核心作用(1) 主要用途(2) 适用位置3

GSON框架下将百度天气JSON数据转JavaBean

《GSON框架下将百度天气JSON数据转JavaBean》这篇文章主要为大家详细介绍了如何在GSON框架下实现将百度天气JSON数据转JavaBean,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录前言一、百度天气jsON1、请求参数2、返回参数3、属性映射二、GSON属性映射实战1、类对象映

Java利用@SneakyThrows注解提升异常处理效率详解

《Java利用@SneakyThrows注解提升异常处理效率详解》这篇文章将深度剖析@SneakyThrows的原理,用法,适用场景以及隐藏的陷阱,看看它如何让Java异常处理效率飙升50%,感兴趣的... 目录前言一、检查型异常的“诅咒”:为什么Java开发者讨厌它1.1 检查型异常的痛点1.2 为什么说

MySQL的配置文件详解及实例代码

《MySQL的配置文件详解及实例代码》MySQL的配置文件是服务器运行的重要组成部分,用于设置服务器操作的各种参数,下面:本文主要介绍MySQL配置文件的相关资料,文中通过代码介绍的非常详细,需要... 目录前言一、配置文件结构1.[mysqld]2.[client]3.[mysql]4.[mysqldum

Java Stream流以及常用方法操作实例

《JavaStream流以及常用方法操作实例》Stream是对Java中集合的一种增强方式,使用它可以将集合的处理过程变得更加简洁、高效和易读,:本文主要介绍JavaStream流以及常用方法... 目录一、Stream流是什么?二、stream的操作2.1、stream流创建2.2、stream的使用2.

解决若依微服务框架启动报错的问题

《解决若依微服务框架启动报错的问题》Invalidboundstatement错误通常由MyBatis映射文件未正确加载或Nacos配置未读取导致,需检查XML的namespace与方法ID是否匹配,... 目录ruoyi-system模块报错报错详情nacos文件目录总结ruoyi-systnGLNYpe

springboot项目中集成shiro+jwt完整实例代码

《springboot项目中集成shiro+jwt完整实例代码》本文详细介绍如何在项目中集成Shiro和JWT,实现用户登录校验、token携带及接口权限管理,涉及自定义Realm、ModularRe... 目录简介目的需要的jar集成过程1.配置shiro2.创建自定义Realm2.1 LoginReal

Python跨文件实例化、跨文件调用及导入库示例代码

《Python跨文件实例化、跨文件调用及导入库示例代码》在Python开发过程中,经常会遇到需要在一个工程中调用另一个工程的Python文件的情况,:本文主要介绍Python跨文件实例化、跨文件调... 目录1. 核心对比表格(完整汇总)1.1 自定义模块跨文件调用汇总表1.2 第三方库使用汇总表1.3 导

springboot自定义注解RateLimiter限流注解技术文档详解

《springboot自定义注解RateLimiter限流注解技术文档详解》文章介绍了限流技术的概念、作用及实现方式,通过SpringAOP拦截方法、缓存存储计数器,结合注解、枚举、异常类等核心组件,... 目录什么是限流系统架构核心组件详解1. 限流注解 (@RateLimiter)2. 限流类型枚举 (