参考资料JPA双向关联多对一映射
-- Table: works_base
-- DROP TABLE works_base;
CREATE TABLE works_base
(
authorid integer,//fk
id integer,//pk
name character varying(80)
)
WITH (
OIDS=FALSE
);
ALTER TABLE works_base
OWNER TO jincheng;
-- Table: author_base
-- DROP TABLE author_base;
CREATE TABLE author_base
(
id integer,//pk
name character varying(80),
mail character varying(80)
)
WITH (
OIDS=FALSE
);
ALTER TABLE author_base
OWNER TO jincheng;
下面是entity的写法,使用注释
package com.jincheng.ssh.model;
import java.io.Serializable;
import java.lang.Integer;
import java.lang.String;
import javax.persistence.*;
import static javax.persistence.FetchType.EAGER;
import static javax.persistence.FetchType.LAZY;
/**
* Entity implementation class for Entity: WorksBase
*
*/
@Entity
@Table(name="works_base")
public class WorksBase implements Serializable {
@Id
@Column(name="id")
private Integer id;
@Column(name="name")
private String name;
@ManyToOne(cascade=CascadeType.ALL)
@JoinColumn(name="authorid")
private AuthorBase authorBase;//使用authorBase代替了authorid
private static final long serialVersionUID = 1L;
public WorksBase() {
super();
}
public Integer getId() {
return this.id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
}
package com.jincheng.ssh.model;
import java.io.Serializable;
import java.lang.Integer;
import java.lang.String;
import java.util.Set;
import javax.persistence.*;
/**
* Entity implementation class for Entity: AuthorBase
*
*/
@Entity
@Table(name="author_base")
public class AuthorBase implements Serializable {
@Id
@Column(name="id")
private Integer id;
@Column(name="name")
private String name;
@Column(name="mail")
private String mail;
@OneToMany(mappedBy="authorBase")
private Set<WorksBase> worksBases;
private static final long serialVersionUID = 1L;
public AuthorBase() {
super();
}
public Integer getId() {
return this.id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
public String getMail() {
return this.mail;
}
public void setMail(String mail) {
this.mail = mail;
}
}
代码中红色标记部分:一个mappedBy和JoinColumn, 就是告诉JPA实现者,
worksBases是通过
WorksBase里的
authorBase映射得到,每次查找
worksBases是通过
WorksBase里的
authorBase联接