Use Case
:后台用户(User),杂志(Magazine)。
一个后台用户可以创建很多杂志(@OneToMany)。
一本杂志被一个后台用户创建(@ManyToOne)。
其实个人感觉还是Rails里的belongs_to
比ManyToOne
更加符合语义。
首先建立杂志类:
/**
* 杂志类
*/
@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实例 test-jpa
JPA_OneToMany学习教程JPA_OneToMany学习教程JPA_OneToMany学习教程JPA_OneToMany学习教程
我們使用Spring Framework裡,在Service 的 Method 給予@Transactional 系統就會去管理transaction,我們是在哪裡做了甚麼...為什麼下的這個Annotation成功會commit失敗會rollback呢? Transaction 管理做了哪些事情呢?
Hibernate 是最流行的ORM 框架之一,也是最早实现JPA 的规范框架之一。它被JBoss 收购后, 目前作为JBoss 的一个开源框架,它遵循LGPL v2.1 开源许可协议,官方主页是http://www.hiber ate.org/。
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 学习
下面小编就为大家带来一篇在JPA的@Query注解中使用limit条件(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
下面小编就为大家带来一篇使用JPA中@Query 注解实现update 操作方法(必看)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
这是play框架的注解的简单介绍,里面有许多注解和使用方法
JPA的基本注解主要包括@Entity、@Table、@Id、@GeneratedValue、@Basic、@Column、@Transient、@Temporal和@TableGenerator等。
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 等全部测试 注解, 有注释
@OneToMany和@ManyToOne的示例(处理无限递归,请参见[1.1]) 使用jUnit进行基本测试的示例 1.1。 JsonManagedReference和JsonBackReference 从Jackson 1.6开始,您可以使用两个注释来解决无限递归问题,而不必在...
注解新实例。版本:spring3.0 hibernate3.0 jdk1.6 实例下载后只需改下数据库配置和对应的实体就可以正常运行了~~
JPA全称Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。 JPA支持XML和JDK5.0注解两种元数据的形式。 JPA的总体思想和现有Hibernate、TopLink、...
用了spring data Jpa做的增删改查登录分页查询的简单实例
详细的JPA注解总结大全 ,,,,,,,
JPA全称Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。 JPA支持XML和JDK5.0注解两种元数据的形式。 JPA的总体思想和现有Hibernate、TopLink、...
在很多情况下,我们使用Spring-Data- Jpa,一些简单的查询,我们都喜欢用定义方法查询,而不是写JPQL。JPA为我们提供了一组注解:使用Spring-Data- Jpa为我们提供的@EntityGraph,或@EntityGraph和@NamedEntityGraph...
本人刚学习完JPA,自己做了个例子,希望对想学习JPA的同僚们有所帮助,也希望高手们来指点!