Skip to content

Instantly share code, notes, and snippets.

@cip123
Created September 12, 2012 10:56
Show Gist options
  • Save cip123/3705931 to your computer and use it in GitHub Desktop.
Save cip123/3705931 to your computer and use it in GitHub Desktop.
one to many via join table
@Entity
@Table(name="PRODUCT")
public class Product {
@Id
private String serialNumber;
@OneToMany
@JoinTable(name="PRODUCT_PARTS", joinColumns=@JoinColumn(name="PRODUCT_ID"), inverseJoinColumns=@JoinColumn(name="PART_ID"))
private Set<Part> parts = new HashSet<Part>();
public String getSerialNumber() {
return serialNumber;
}
public void setSerialNumber(String serialNumber) {
this.serialNumber = serialNumber;
}
public Set<Part> getParts() {
return parts;
}
public void setParts(Set<Part> parts) {
this.parts = parts;
}
}
@Entity
@Table(name="PRODUCT")
public class Product {
@Id
private String serialNumber;
@OneToMany
@JoinTable(name="PRODUCT_PARTS", joinColumns=@JoinColumn(name="PRODUCT_ID"), inverseJoinColumns=@JoinColumn(name="PART_ID"))
private Set<Part> parts = new HashSet<Part>();
public String getSerialNumber() {
return serialNumber;
}
public void setSerialNumber(String serialNumber) {
this.serialNumber = serialNumber;
}
public Set<Part> getParts() {
return parts;
}
public void setParts(Set<Part> parts) {
this.parts = parts;
}
}
CREATE TABLE `PRODUCT_PARTS` (
`PRODUCT_ID` varchar(255) NOT NULL,
`PART_ID` bigint(20) NOT NULL,
PRIMARY KEY (`PRODUCT_ID`,`PART_ID`),
UNIQUE KEY `PART_ID` (`PART_ID`),
KEY `FK42C3C7507B2D661E` (`PRODUCT_ID`),
KEY `FK42C3C75071CA5096` (`PART_ID`),
CONSTRAINT `FK42C3C75071CA5096` FOREIGN KEY (`PART_ID`) REFERENCES `Part` (`id`),
CONSTRAINT `FK42C3C7507B2D661E` FOREIGN KEY (`PRODUCT_ID`) REFERENCES `PRODUCT` (`serialNumber`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment