/* * Hibernate Search, full-text search for your domain model * * 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.search.test.envers; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.ManyToOne; import org.hibernate.envers.Audited; import org.hibernate.search.annotations.DocumentId; import org.hibernate.search.annotations.Field; import org.hibernate.search.annotations.Indexed; import org.hibernate.search.annotations.IndexedEmbedded; import org.hibernate.search.annotations.SortableField; /** * * @author Davide Di Somma <davide.disomma@gmail.com> */ @Entity @Indexed @Audited(withModifiedFlag = true) public class Person { public Person() { } public Person(String name, String surname, Address address) { super(); this.name = name; this.surname = surname; this.address = address; } @Id @GeneratedValue @DocumentId private Long id; public Long getId() { return id; } public void setId(Long id) { this.id = id; } @Field private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } @Field @SortableField private String surname; public String getSurname() { return surname; } public void setSurname(String surname) { this.surname = surname; } @ManyToOne @IndexedEmbedded private Address address; public Address getAddress() { return address; } public void setAddress(Address address) { this.address = address; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ( ( address == null ) ? 0 : address.getId().hashCode() ); result = prime * result + ( ( id == null ) ? 0 : id.hashCode() ); result = prime * result + ( ( name == null ) ? 0 : name.hashCode() ); result = prime * result + ( ( surname == null ) ? 0 : surname.hashCode() ); return result; } @Override public boolean equals(Object obj) { if ( this == obj ) { return true; } if ( obj == null ) { return false; } if ( getClass() != obj.getClass() ) { return false; } Person other = (Person) obj; if ( address == null ) { if ( other.address != null ) { return false; } } else if ( !address.getId().equals( other.address.getId() ) ) { return false; } if ( id == null ) { if ( other.id != null ) { return false; } } else if ( !id.equals( other.id ) ) { return false; } if ( name == null ) { if ( other.name != null ) { return false; } } else if ( !name.equals( other.name ) ) { return false; } if ( surname == null ) { if ( other.surname != null ) { return false; } } else if ( !surname.equals( other.surname ) ) { return false; } return true; } }