`
thierry.xing
  • 浏览: 657947 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
580fa9c1-4a0c-3f40-a55a-c9256ce73302
Sencha Touch中...
浏览量:0
社区版块
存档分类
最新评论

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

    博客分类:
  • Java
 
阅读更多

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

 

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

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

 

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

 

首先建立杂志类:

/**
 * 杂志类
 */
@Entity
public class Magazine extends Model
{
	// 主题
	@Required
	public String topic;

	// 刊号
	@Required
	public int serial;

	// 简介
	@Required
	public String summary;

	// 发布日期
	@Required
	public String date;

	// 被一个后台用户创建
	@ManyToOne
	public User creator;

}
 

其次是后台用户类:

@Entity
public class User extends Model
{
	// 用户名
	public String username;

	// 密码
	public String password;

	// 是否是管理员
	public int isAdmin;

	// 主数据库的id
	public 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

分享到:
评论

相关推荐

    JPA注解@Access实例

    JPA注解@Access实例 test-jpa

    JPA_OneToMany学习教程

    JPA_OneToMany学习教程JPA_OneToMany学习教程JPA_OneToMany学习教程JPA_OneToMany学习教程

    后端 Java Spring Data Jpa @Transactional 介绍

    我們使用Spring Framework裡,在Service 的 Method 給予@Transactional 系統就會去管理transaction,我們是在哪裡做了甚麼...為什麼下的這個Annotation成功會commit失敗會rollback呢? Transaction 管理做了哪些事情呢?

    Hibernate JPA

    Hibernate 是最流行的ORM 框架之一,也是最早实现JPA 的规范框架之一。它被JBoss 收购后, 目前作为JBoss 的一个开源框架,它遵循LGPL v2.1 开源许可协议,官方主页是http://www.hiber ate.org/。

    JPA 标注 JPA标签手册

    o @ManyToOne o @MapKey o @MappedSuperclass • N o @NamedNativeQueries o @NamedNativeQuery o @NamedQueries o @NamedQuery • O o @OneToMany o @OneToOne o @OrderBy • P o @PersistenceContext o @...

    超全面综合笔记!Spring Data Jpa 学习

    综合多家视频,超全面综合笔记!Spring Data Jpa 学习

    在JPA的@Query注解中使用limit条件(详解)

    下面小编就为大家带来一篇在JPA的@Query注解中使用limit条件(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    使用JPA中@Query 注解实现update 操作方法(必看)

    下面小编就为大家带来一篇使用JPA中@Query 注解实现update 操作方法(必看)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    play框架 JPA注解

    这是play框架的注解的简单介绍,里面有许多注解和使用方法

    JPA-2 基本注解

    JPA的基本注解主要包括@Entity、@Table、@Id、@GeneratedValue、@Basic、@Column、@Transient、@Temporal和@TableGenerator等。

    JPA注解.doc J PA注解.

    JPA注解.doc JPA注解.doc JPA注解.doc JPA注解.doc JPA注解.doc JPA注解.doc JPA注解.doc JPA注解.doc JPA注解.doc JPA注解.doc JPA注解.doc JPA注解.doc JPA注解.doc JPA注解.doc JPA注解.doc JPA注解.doc JPA注解....

    JPA课程manyToMany OneToMany 等全部测试

    JPA课程manyToMany OneToMany 等全部测试 注解, 有注释

    springDemos:一些测试和示例

    @OneToMany和@ManyToOne的示例(处理无限递归,请参见[1.1]) 使用jUnit进行基本测试的示例 1.1。 JsonManagedReference和JsonBackReference 从Jackson 1.6开始,您可以使用两个注释来解决无限递归问题,而不必在...

    spring3.0 mvc+hibernate3.6 +jpa 注解实例

    注解新实例。版本:spring3.0 hibernate3.0 jdk1.6 实例下载后只需改下数据库配置和对应的实体就可以正常运行了~~

    JPA注解参考文档

    JPA全称Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。 JPA支持XML和JDK5.0注解两种元数据的形式。 JPA的总体思想和现有Hibernate、TopLink、...

    spring Data JPA框架实例

    用了spring data Jpa做的增删改查登录分页查询的简单实例

    JPA注解总结大全!!!!

    详细的JPA注解总结大全 ,,,,,,,

    JPA 注解参考文档

    JPA全称Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。 JPA支持XML和JDK5.0注解两种元数据的形式。 JPA的总体思想和现有Hibernate、TopLink、...

    使用Spring Data Jpa为我们提供的@EntityGraph.docx

    在很多情况下,我们使用Spring-Data- Jpa,一些简单的查询,我们都喜欢用定义方法查询,而不是写JPQL。JPA为我们提供了一组注解:使用Spring-Data- Jpa为我们提供的@EntityGraph,或@EntityGraph和@NamedEntityGraph...

    j2ee 持久化框架——jpa实例

    本人刚学习完JPA,自己做了个例子,希望对想学习JPA的同僚们有所帮助,也希望高手们来指点!

Global site tag (gtag.js) - Google Analytics