//$Id$
package org.hibernate.test.annotations.manytoone;
import java.io.Serializable;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinColumns;
import javax.persistence.ManyToOne;
/**
* @author Emmanuel Bernard
*/
@Entity
public class Node implements Serializable {
private NodePk id;
private String description;
private Node parent;
public boolean equals(Object o) {
if ( this == o ) return true;
if ( !( o instanceof Node ) ) return false;
final Node node = (Node) o;
if ( !id.equals( node.id ) ) return false;
return true;
}
public int hashCode() {
return id.hashCode();
}
@Id
public NodePk getId() {
return id;
}
public void setId(NodePk id) {
this.id = id;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
@ManyToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinColumns({
@JoinColumn(name = "parentName"),
@JoinColumn(name = "parentLevel")
})
public Node getParent() {
return parent;
}
public void setParent(Node parent) {
this.parent = parent;
}
}