/* * Hibernate OGM, Domain model persistence for NoSQL datastores * * License: GNU Lesser General Public License (LGPL), version 2.1 or later * See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>. */ package org.hibernate.ogm.backendtck.associations.collection.types; import java.io.Serializable; import javax.persistence.EmbeddedId; import javax.persistence.Entity; /** * @author Emmanuel Bernard <emmanuel@hibernate.org> */ @Entity public class Runner { @EmbeddedId private RunnerId runnerId; private int age; public RunnerId getRunnerId() { return runnerId; } public void setRunnerId(RunnerId runnerId) { this.runnerId = runnerId; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public static class RunnerId implements Serializable { private String firstname; private String lastname; public RunnerId() { } public RunnerId(String firstname, String lastname) { this.firstname = firstname; this.lastname = lastname; } public String getFirstname() { return firstname; } public void setFirstname(String firstname) { this.firstname = firstname; } public String getLastname() { return lastname; } public void setLastname(String lastname) { this.lastname = lastname; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ( ( firstname == null ) ? 0 : firstname.hashCode() ); result = prime * result + ( ( lastname == null ) ? 0 : lastname.hashCode() ); return result; } @Override public boolean equals(Object obj) { if ( this == obj ) { return true; } else if ( obj == null ) { return false; } else if ( getClass() != obj.getClass() ) { return false; } RunnerId other = (RunnerId) obj; if ( firstname == null ) { if ( other.firstname != null ) { return false; } } else if ( !firstname.equals( other.firstname ) ) { return false; } else if ( lastname == null ) { if ( other.lastname != null ) { return false; } } else if ( !lastname.equals( other.lastname ) ) { return false; } return true; } } }