Husband.java
Wife.java
WifePK.java
hibernate.cfg.xml
1
package com.bebig.hibernate.model;
2
3
import javax.persistence.Entity;
4
import javax.persistence.GeneratedValue;
5
import javax.persistence.Id;
6
import javax.persistence.JoinColumn;
7
import javax.persistence.JoinColumns;
8
import javax.persistence.OneToOne;
9
10
@Entity
11
public class Husband {
12
private int id;
13
14
private String name;
15
16
private Wife wifeId;
17
18
@Id
19
@GeneratedValue
20
public int getId() {
21
return id;
22
}
23
24
public String getName() {
25
return name;
26
}
27
28
@OneToOne
29
@JoinColumns({ @JoinColumn(name = "wifeId", referencedColumnName = "id"),
30
@JoinColumn(name = "wifeName", referencedColumnName = "name") })
31
public Wife getWifeId() {
32
return wifeId;
33
}
34
35
public void setId(int id) {
36
this.id = id;
37
}
38
39
public void setName(String name) {
40
this.name = name;
41
}
42
43
public void setWifeId(Wife wifeId) {
44
this.wifeId = wifeId;
45
}
46
}
47
package com.bebig.hibernate.model;2

3
import javax.persistence.Entity;4
import javax.persistence.GeneratedValue;5
import javax.persistence.Id;6
import javax.persistence.JoinColumn;7
import javax.persistence.JoinColumns;8
import javax.persistence.OneToOne;9

10
@Entity11
public class Husband {12
private int id;13

14
private String name;15

16
private Wife wifeId;17

18
@Id19
@GeneratedValue20
public int getId() {21
return id;22
}23

24
public String getName() {25
return name;26
}27

28
@OneToOne29
@JoinColumns({ @JoinColumn(name = "wifeId", referencedColumnName = "id"),30
@JoinColumn(name = "wifeName", referencedColumnName = "name") })31
public Wife getWifeId() {32
return wifeId;33
}34

35
public void setId(int id) {36
this.id = id;37
}38

39
public void setName(String name) {40
this.name = name;41
}42

43
public void setWifeId(Wife wifeId) {44
this.wifeId = wifeId;45
}46
}47

Wife.java
1
package com.bebig.hibernate.model;
2
3
import javax.persistence.Entity;
4
import javax.persistence.Id;
5
import javax.persistence.IdClass;
6
7
@Entity
8
@IdClass(WifePK.class)
9
public class Wife
{
10
private int id;
11
12
private String name;
13
14
private int age;
15
16
public int getAge()
{
17
return age;
18
}
19
20
@Id
21
public int getId()
{
22
return id;
23
}
24
25
@Id
26
public String getName()
{
27
return name;
28
}
29
30
public void setAge(int age)
{
31
this.age = age;
32
}
33
34
public void setId(int id)
{
35
this.id = id;
36
}
37
38
public void setName(String name)
{
39
this.name = name;
40
}
41
}
42
package com.bebig.hibernate.model;2

3
import javax.persistence.Entity;4
import javax.persistence.Id;5
import javax.persistence.IdClass;6

7
@Entity8
@IdClass(WifePK.class)9

public class Wife
{10
private int id;11

12
private String name;13

14
private int age;15

16

public int getAge()
{17
return age;18
}19

20
@Id21

public int getId()
{22
return id;23
}24

25
@Id26

public String getName()
{27
return name;28
}29

30

public void setAge(int age)
{31
this.age = age;32
}33

34

public void setId(int id)
{35
this.id = id;36
}37

38

public void setName(String name)
{39
this.name = name;40
}41
}42

WifePK.java
1
package com.bebig.hibernate.model;
2
3
import java.io.Serializable;
4
5
public class WifePK implements Serializable
{
6
/** *//**
7
*
8
*/
9
private static final long serialVersionUID = -5517968831518191245L;
10
11
private int id;
12
13
private String name;
14
15
public int getId()
{
16
return id;
17
}
18
19
public String getName()
{
20
return name;
21
}
22
23
public void setId(int id)
{
24
this.id = id;
25
}
26
27
public void setName(String name)
{
28
this.name = name;
29
}
30
31
@Override
32
public boolean equals(Object o)
{
33
if (o instanceof WifePK)
{
34
WifePK pk = (WifePK) o;
35
if (pk.id == this.id && this.name.equals(pk.getName()))
{
36
return true;
37
}
38
}
39
return false;
40
}
41
42
@Override
43
public int hashCode()
{
44
return this.name.hashCode();
45
}
46
}
47
package com.bebig.hibernate.model;2

3
import java.io.Serializable;4

5

public class WifePK implements Serializable
{6

/** *//**7
* 8
*/9
private static final long serialVersionUID = -5517968831518191245L;10

11
private int id;12

13
private String name;14

15

public int getId()
{16
return id;17
}18

19

public String getName()
{20
return name;21
}22

23

public void setId(int id)
{24
this.id = id;25
}26

27

public void setName(String name)
{28
this.name = name;29
}30

31
@Override32

public boolean equals(Object o)
{33

if (o instanceof WifePK)
{34
WifePK pk = (WifePK) o;35

if (pk.id == this.id && this.name.equals(pk.getName()))
{36
return true;37
}38
}39
return false;40
}41

42
@Override43

public int hashCode()
{44
return this.name.hashCode();45
}46
}47

hibernate.cfg.xml
1
//
省略
2
<mapping class="com.bebig.hibernate.model.Husband"/>
3
<mapping class="com.bebig.hibernate.model.Wife"/>
4
//
省略
5
//
省略2
<mapping class="com.bebig.hibernate.model.Husband"/>3
<mapping class="com.bebig.hibernate.model.Wife"/>4
//
省略5


