annotation注解开发:
以person 和 personID为例:
Person.java:
package com.bean;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.IdClass;
import javax.persistence.OneToOne;
@Entity
@IdClass(value=PersonPK.class)
public class Person {
private int id;
private String name;
private int age;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Id
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@Id
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
PersonPK.java:(联合主键类)package com.bean;
import java.io.Serializable;
public class PersonPK implements Serializable{
private int id;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public int hashCode() {
return this.name.hashCode();
}
@Override
public boolean equals(Object obj) {
if(obj instanceof PersonPK){
PersonPK personPK = (PersonPK)obj;
if(this.id == personPK.id && this.name.equals(personPK.name)){
return true;
}
}
return false;
}
}
PersonID.java:
package com.bean;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinColumns;
import javax.persistence.OneToOne;
@Entity
public class PersonID {
private int id;
private String name;
Person person;
@Id
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@OneToOne
@JoinColumns( //自定义数据库中字段名称
{
@JoinColumn(name="WifeId",referencedColumnName="id"),
@JoinColumn(name="wifeName",referencedColumnName="name")
}
)
public Person getPerson() {
return person;
}
public void setPerson(Person person) {
this.person = person;
}
}