//$Id$
package org.hibernate.test.annotations.onetoone;
import javax.persistence.AttributeOverride;
import javax.persistence.AttributeOverrides;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.JoinColumns;
import javax.persistence.OneToOne;
/**
* @author Emmanuel Bernard
*/
@Entity
public class Computer {
private ComputerPk id;
private String cpu;
private SerialNumber serial;
@OneToOne(cascade = {CascadeType.PERSIST})
@JoinColumns({
@JoinColumn(name = "serialbrand", referencedColumnName = "brand"),
@JoinColumn(name = "serialmodel", referencedColumnName = "model")
})
public SerialNumber getSerial() {
return serial;
}
public void setSerial(SerialNumber serial) {
this.serial = serial;
}
public boolean equals(Object o) {
if ( this == o ) return true;
if ( !( o instanceof Computer ) ) return false;
final Computer computer = (Computer) o;
if ( !id.equals( computer.id ) ) return false;
return true;
}
public int hashCode() {
return id.hashCode();
}
@EmbeddedId
@AttributeOverrides({
@AttributeOverride(name = "brand", column = @Column(name = "computer_brand")),
@AttributeOverride(name = "model", column = @Column(name = "computer_model"))
})
public ComputerPk getId() {
return id;
}
public void setId(ComputerPk id) {
this.id = id;
}
public String getCpu() {
return cpu;
}
public void setCpu(String cpu) {
this.cpu = cpu;
}
}