联合主键一对一单向关联
2016-07-10 19:34
232 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/harveysydney/article/details/84809439
Annotation 方法
表结构:
'CREATE TABLE `address` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(45) DEFAULT NULL,
`personID` int(11) NOT NULL,
`personName` varchar(45) NOT NULL,
PRIMARY KEY (`id`),
KEY `FK_cuouomn7m2bjnuywew2n5im4w` (`personID`,`personName`),
CONSTRAINT `FK_cuouomn7m2bjnuywew2n5im4w` FOREIGN KEY (`personID`, `personName`) REFERENCES `person` (`id`, `name`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8'
'CREATE TABLE `person` (
`id` int(11) NOT NULL,
`name` varchar(45) NOT NULL,
`age` int(11) NOT NULL,
PRIMARY KEY (`id`,`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8'
PersonID 类
package hibernate.entities; import java.io.Serializable; public class PersonID 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; } }
Person类
package hibernate.entities; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.IdClass; import javax.persistence.JoinColumn; import javax.persistence.OneToOne; @Entity @IdClass(PersonID.class) public class Person { private int id; private String name; private int 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; } @Column public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
Address类
package hibernate.entities; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.JoinColumns; import javax.persistence.OneToOne; @Entity public class Address { private int id; private String name; private Person person; @Id @GeneratedValue public int getId() { return id; } public void setId(int id) { this.id = id; } @Column public String getName() { return name; } public void setName(String name) { this.name = name; } @OneToOne @JoinColumns( { @JoinColumn(name="personID", referencedColumnName="id"), @JoinColumn(name="personName", referencedColumnName="name") } ) public Person getPerson() { return person; } public void setPerson(Person person) { this.person = person; } }
相关文章推荐
- Hibernate关系映射(5)_一对一单向联合主键关联
- hibernate一对一单向外键关联_Annotation_联合主键
- Hibernate关系映射(3)_一对一单向主键关联
- Hibernate一对一主键关联映射(单向)
- HIBERNATE一对一双向外键联合主键关联
- 《Hibernate学习笔记七》一对一联合主键的关联
- 《Hibernate学习笔记七》一对一联合主键的关联
- hibernate一对一主键关联单向(一)
- hibernate一对一单向主键关联_Annotation
- Hibernate关系映射级别注解(一对一双向外键关联、一对一双向外键联合主键)
- 一对一主键关联映射(单向)
- 单向一对一主键关联映射
- 038:hibernate一对一单向主键关联(不重要)
- Hibernate主键一对一关联映射实例【xml和注解版本@OneToOne@JoinColumn(name="wifeId")--主键单向】(十二)
- 一对一主键关联映射(单向)
- hibernate一对一主键关联单向(二)
- 一对一单向主键关联xml配置方法
- Hibernate 一对一主键单向关联
- Hibernate 一对一主键单向关联
- Hibernate 第十讲 表关联关系(三)单向项一对一主键关联