[hibernate-commits] Hibernate SVN: r18403 - in core/trunk/annotations/src: test/java/org/hibernate/test/annotations/manytoonewithformula and 1 other directory.

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Mon Jan 4 15:12:33 EST 2010


Author: sharathjreddy
Date: 2010-01-04 15:12:33 -0500 (Mon, 04 Jan 2010)
New Revision: 18403

Added:
   core/trunk/annotations/src/test/java/org/hibernate/test/annotations/manytoonewithformula/Contract.java
   core/trunk/annotations/src/test/java/org/hibernate/test/annotations/manytoonewithformula/ContractId.java
   core/trunk/annotations/src/test/java/org/hibernate/test/annotations/manytoonewithformula/Manufacturer.java
   core/trunk/annotations/src/test/java/org/hibernate/test/annotations/manytoonewithformula/ManufacturerId.java
   core/trunk/annotations/src/test/java/org/hibernate/test/annotations/manytoonewithformula/Model.java
   core/trunk/annotations/src/test/java/org/hibernate/test/annotations/manytoonewithformula/ModelId.java
Modified:
   core/trunk/annotations/src/main/java/org/hibernate/cfg/Ejb3JoinColumn.java
   core/trunk/annotations/src/test/java/org/hibernate/test/annotations/manytoonewithformula/ManyToOneWithFormulaTest.java
Log:
HHH-4653 

Modified: core/trunk/annotations/src/main/java/org/hibernate/cfg/Ejb3JoinColumn.java
===================================================================
--- core/trunk/annotations/src/main/java/org/hibernate/cfg/Ejb3JoinColumn.java	2010-01-04 19:10:05 UTC (rev 18402)
+++ core/trunk/annotations/src/main/java/org/hibernate/cfg/Ejb3JoinColumn.java	2010-01-04 20:12:33 UTC (rev 18403)
@@ -570,17 +570,19 @@
 	 */
 	public void overrideFromReferencedColumnIfNecessary(org.hibernate.mapping.Column column) {
 		
-		// columnDefinition can also be specified using @JoinColumn, hence we have to check
-		// whether it is set or not
-		if ( StringHelper.isEmpty( sqlType ) ) {
-			sqlType = column.getSqlType();
-			if ( getMappingColumn() != null ) getMappingColumn().setSqlType( sqlType );
+		if (getMappingColumn() != null) {
+			// columnDefinition can also be specified using @JoinColumn, hence we have to check
+			// whether it is set or not
+			if ( StringHelper.isEmpty( sqlType ) ) {
+				sqlType = column.getSqlType();
+				getMappingColumn().setSqlType( sqlType );
+			}
+
+			// these properties can only be applied on the referenced column - we can just take them over
+			getMappingColumn().setLength(column.getLength());
+			getMappingColumn().setPrecision(column.getPrecision());
+			getMappingColumn().setScale(column.getScale());
 		}
-		
-		// these properties can only be applied on the referenced column - we can just take them over
-		getMappingColumn().setLength(column.getLength());
-		getMappingColumn().setPrecision(column.getPrecision());
-		getMappingColumn().setScale(column.getScale());		
 	}
 
 	@Override

Added: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/manytoonewithformula/Contract.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/manytoonewithformula/Contract.java	                        (rev 0)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/manytoonewithformula/Contract.java	2010-01-04 20:12:33 UTC (rev 18403)
@@ -0,0 +1,105 @@
+/*
+  * Hibernate, Relational Persistence for Idiomatic Java
+  *
+  * Copyright (c) 2009, Red Hat, Inc. and/or its affiliates or third-
+  * party contributors as indicated by the @author tags or express 
+  * copyright attribution statements applied by the authors.  
+  * All third-party contributions are distributed under license by 
+  * Red Hat, Inc.
+  *
+  * This copyrighted material is made available to anyone wishing to 
+  * use, modify, copy, or redistribute it subject to the terms and 
+  * conditions of the GNU Lesser General Public License, as published 
+  * by the Free Software Foundation.
+  *
+  * This program is distributed in the hope that it will be useful,
+  * but WITHOUT ANY WARRANTY; without even the implied warranty of 
+  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+  * Lesser General Public License for more details.
+  *
+  * You should have received a copy of the GNU Lesser General Public 
+  * License along with this distribution; if not, write to:
+  * 
+  * Free Software Foundation, Inc.
+  * 51 Franklin Street, Fifth Floor
+  * Boston, MA  02110-1301  USA
+  */
+
+package org.hibernate.test.annotations.manytoonewithformula;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+import javax.persistence.Table;
+
+import org.hibernate.annotations.JoinColumnOrFormula;
+import org.hibernate.annotations.JoinColumnsOrFormulas;
+import org.hibernate.annotations.JoinFormula;
+
+ at Entity
+ at Table(name = "CONTRACT")
+public class Contract {
+	private String contractNumber;
+
+	// private Integer companyCode;
+
+	private ContractId id;
+
+	private Manufacturer manufacturer;
+
+	private Model model;
+
+	public Contract() {
+	}
+
+	@Id
+	public ContractId getId() {
+		return id;
+	}
+
+	public void setId(ContractId id) {
+		this.id = id;
+	}
+ 
+	@ManyToOne
+	@JoinColumnsOrFormulas( {
+			@JoinColumnOrFormula(column = @JoinColumn(name = "CDT_MDL_CODE", referencedColumnName = "MDL_CODE")),
+			@JoinColumnOrFormula(formula = @JoinFormula(value = "CDT_MFG_CODE", referencedColumnName = "MDL_MFG_CODE")),
+			@JoinColumnOrFormula(formula = @JoinFormula(value = "CDT_COMPANY_CODE", referencedColumnName = "MDL_COMPANY_CODE"))})
+	public Model getModel() {
+		return model;
+	}
+
+	public void setModel(Model model) {
+		this.model = model;
+	}
+
+	@Column(name = "CDT_CONTRACT_NBR")
+	public String getContractNumber() {
+		return contractNumber;
+	}
+
+	public void setContractNumber(String contractNumber) {
+		this.contractNumber = contractNumber;
+	}
+
+	@ManyToOne
+	@JoinColumnsOrFormulas( {
+			@JoinColumnOrFormula(column = @JoinColumn(name = "CDT_MFG_CODE", referencedColumnName = "MFG_CODE")),
+			@JoinColumnOrFormula(formula = @JoinFormula(value = "CDT_COMPANY_CODE", referencedColumnName = "MFG_COMPANY_CODE")) })
+	public Manufacturer getManufacturer() {
+		return manufacturer;
+	}
+
+	public void setManufacturer(Manufacturer manufacturer) {
+		this.manufacturer = manufacturer;
+	}
+
+	@Override
+	public String toString() {
+		return contractNumber;
+	}
+
+}

Added: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/manytoonewithformula/ContractId.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/manytoonewithformula/ContractId.java	                        (rev 0)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/manytoonewithformula/ContractId.java	2010-01-04 20:12:33 UTC (rev 18403)
@@ -0,0 +1,124 @@
+/*
+  * Hibernate, Relational Persistence for Idiomatic Java
+  *
+  * Copyright (c) 2009, Red Hat, Inc. and/or its affiliates or third-
+  * party contributors as indicated by the @author tags or express 
+  * copyright attribution statements applied by the authors.  
+  * All third-party contributions are distributed under license by 
+  * Red Hat, Inc.
+  *
+  * This copyrighted material is made available to anyone wishing to 
+  * use, modify, copy, or redistribute it subject to the terms and 
+  * conditions of the GNU Lesser General Public License, as published 
+  * by the Free Software Foundation.
+  *
+  * This program is distributed in the hope that it will be useful,
+  * but WITHOUT ANY WARRANTY; without even the implied warranty of 
+  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+  * Lesser General Public License for more details.
+  *
+  * You should have received a copy of the GNU Lesser General Public 
+  * License along with this distribution; if not, write to:
+  * 
+  * Free Software Foundation, Inc.
+  * 51 Franklin Street, Fifth Floor
+  * Boston, MA  02110-1301  USA
+  */
+
+package org.hibernate.test.annotations.manytoonewithformula;
+
+import java.io.Serializable;
+import javax.persistence.Column;
+import javax.persistence.Embeddable;
+
+ at Embeddable
+public class ContractId implements Serializable {
+
+	private static final long serialVersionUID = 1L;
+
+	private Integer companyCode;
+
+	private Long contractNumber;
+
+	private Integer contractSequenceNumber;
+
+	public ContractId() {
+	}
+
+	public ContractId(Integer companyCode, Long contractNumber,
+			Integer contractSequenceNumber) {
+		this.companyCode = companyCode;
+		this.contractNumber = contractNumber;
+		this.contractSequenceNumber = contractSequenceNumber;
+	}
+
+	@Column(name = "CDT_COMPANY_CODE")
+	public Integer getCompanyCode() {
+		return companyCode;
+	}
+
+	public void setCompanyCode(Integer companyCode) {
+		this.companyCode = companyCode;
+	}
+
+	@Column(name="CDT_NBR")
+	public Long getContractNumber() {
+		return contractNumber;
+	}
+
+	public void setContractNumber(Long contractNumber) {
+		this.contractNumber = contractNumber;
+	}
+
+	@Column(name="CDT_SEQ_NBR")
+	public Integer getContractSequenceNumber() {
+		return contractSequenceNumber;
+	}
+
+	public void setContractSequenceNumber(Integer contractSequenceNumber) {
+		this.contractSequenceNumber = contractSequenceNumber;
+	}
+
+	@Override
+	public int hashCode() {
+		final int prime = 31;
+		int result = 1;
+		result = prime * result
+				+ ((companyCode == null) ? 0 : companyCode.hashCode());
+		result = prime * result
+				+ ((contractNumber == null) ? 0 : contractNumber.hashCode());
+		result = prime
+				* result
+				+ ((contractSequenceNumber == null) ? 0
+						: contractSequenceNumber.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;
+		ContractId other = (ContractId) obj;
+		if (companyCode == null) {
+			if (other.companyCode != null)
+				return false;
+		} else if (!companyCode.equals(other.companyCode))
+			return false;
+		if (contractNumber == null) {
+			if (other.contractNumber != null)
+				return false;
+		} else if (!contractNumber.equals(other.contractNumber))
+			return false;
+		if (contractSequenceNumber == null) {
+			if (other.contractSequenceNumber != null)
+				return false;
+		} else if (!contractSequenceNumber.equals(other.contractSequenceNumber))
+			return false;
+		return true;
+	}
+
+}

Added: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/manytoonewithformula/Manufacturer.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/manytoonewithformula/Manufacturer.java	                        (rev 0)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/manytoonewithformula/Manufacturer.java	2010-01-04 20:12:33 UTC (rev 18403)
@@ -0,0 +1,75 @@
+/*
+  * Hibernate, Relational Persistence for Idiomatic Java
+  *
+  * Copyright (c) 2009, Red Hat, Inc. and/or its affiliates or third-
+  * party contributors as indicated by the @author tags or express 
+  * copyright attribution statements applied by the authors.  
+  * All third-party contributions are distributed under license by 
+  * Red Hat, Inc.
+  *
+  * This copyrighted material is made available to anyone wishing to 
+  * use, modify, copy, or redistribute it subject to the terms and 
+  * conditions of the GNU Lesser General Public License, as published 
+  * by the Free Software Foundation.
+  *
+  * This program is distributed in the hope that it will be useful,
+  * but WITHOUT ANY WARRANTY; without even the implied warranty of 
+  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+  * Lesser General Public License for more details.
+  *
+  * You should have received a copy of the GNU Lesser General Public 
+  * License along with this distribution; if not, write to:
+  * 
+  * Free Software Foundation, Inc.
+  * 51 Franklin Street, Fifth Floor
+  * Boston, MA  02110-1301  USA
+  */
+
+package org.hibernate.test.annotations.manytoonewithformula;
+
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+
+ at Entity
+ at Table(name = "MANUFACTURER")
+public class Manufacturer {
+
+	private ManufacturerId id;
+
+	private String name;
+
+	public Manufacturer(ManufacturerId id, String name) {
+		this.id = id;
+		this.name = name;
+	}
+
+	public Manufacturer() {
+	}
+
+	@Column(name = "MFG_NAME")
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	@Id
+	public ManufacturerId getId() {
+		return id;
+	}
+
+	public void setId(ManufacturerId id) {
+		this.id = id;
+	}
+
+	@Override
+	public String toString() {
+		return name;
+	}
+}
+

Added: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/manytoonewithformula/ManufacturerId.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/manytoonewithformula/ManufacturerId.java	                        (rev 0)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/manytoonewithformula/ManufacturerId.java	2010-01-04 20:12:33 UTC (rev 18403)
@@ -0,0 +1,71 @@
+/*
+  * Hibernate, Relational Persistence for Idiomatic Java
+  *
+  * Copyright (c) 2009, Red Hat, Inc. and/or its affiliates or third-
+  * party contributors as indicated by the @author tags or express 
+  * copyright attribution statements applied by the authors.  
+  * All third-party contributions are distributed under license by 
+  * Red Hat, Inc.
+  *
+  * This copyrighted material is made available to anyone wishing to 
+  * use, modify, copy, or redistribute it subject to the terms and 
+  * conditions of the GNU Lesser General Public License, as published 
+  * by the Free Software Foundation.
+  *
+  * This program is distributed in the hope that it will be useful,
+  * but WITHOUT ANY WARRANTY; without even the implied warranty of 
+  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+  * Lesser General Public License for more details.
+  *
+  * You should have received a copy of the GNU Lesser General Public 
+  * License along with this distribution; if not, write to:
+  * 
+  * Free Software Foundation, Inc.
+  * 51 Franklin Street, Fifth Floor
+  * Boston, MA  02110-1301  USA
+  */
+
+package org.hibernate.test.annotations.manytoonewithformula;
+
+import java.io.Serializable;
+
+import javax.persistence.Column;
+import javax.persistence.Embeddable;
+
+ at Embeddable
+public class ManufacturerId implements Serializable {
+	
+	private static final long serialVersionUID = 1L;
+
+	private Integer companyCode;
+
+	private Integer manufacturerCode;
+
+	public ManufacturerId(Integer companyCode, Integer manufacturerCode) {
+		this.companyCode = companyCode;
+		this.manufacturerCode = manufacturerCode;
+	}
+
+	public ManufacturerId() {
+	}
+
+	@Column(name = "MFG_COMPANY_CODE")
+	public Integer getCompanyCode() {
+		return companyCode;
+	}
+
+	public void setCompanyCode(Integer companyCode) {
+		this.companyCode = companyCode;
+	}
+
+	@Column(name = "MFG_CODE")
+	public Integer getManufacturerCode() {
+		return manufacturerCode;
+	}
+
+	public void setManufacturerCode(Integer manufacturerCode) {
+		this.manufacturerCode = manufacturerCode;
+	}
+	
+}
+

Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/manytoonewithformula/ManyToOneWithFormulaTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/manytoonewithformula/ManyToOneWithFormulaTest.java	2010-01-04 19:10:05 UTC (rev 18402)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/manytoonewithformula/ManyToOneWithFormulaTest.java	2010-01-04 20:12:33 UTC (rev 18403)
@@ -109,6 +109,46 @@
 		s.close();
 	}
 
+	public void testReferencedColumnNameBelongsToEmbeddedIdOfReferencedEntity() throws Exception {
+ 
+		Session session = openSession();
+		Transaction tx = session.beginTransaction();
+		
+		Integer companyCode = 10;
+		Integer mfgCode = 100;
+		String contractNumber = "NSAR97841";
+		ContractId contractId = new ContractId(companyCode, 12457l, 1);
+
+		Manufacturer manufacturer = new Manufacturer(new ManufacturerId(
+				companyCode, mfgCode), "FORD");
+
+		Model model = new Model(new ModelId(companyCode, mfgCode, "FOCUS"),
+				"FORD FOCUS");
+ 
+		session.persist(manufacturer);
+		session.persist(model);
+
+		Contract contract = new Contract();
+		contract.setId(contractId);
+		contract.setContractNumber(contractNumber);
+		contract.setManufacturer(manufacturer);
+		contract.setModel(model);
+
+		session.persist(contract);
+
+		session.flush();
+		session.clear();
+
+		contract = (Contract) session.load(Contract.class, contractId);
+		assertEquals("NSAR97841", contract.getContractNumber());
+		assertEquals("FORD", contract.getManufacturer().getName());
+		assertEquals("FORD FOCUS", contract.getModel().getName());
+
+		tx.commit();
+		session.close();
+	}
+	
+	
 	/**
 	 * @see org.hibernate.test.annotations.TestCase#getMappings()
 	 */
@@ -119,7 +159,13 @@
 				Company.class,
 				Person.class,
 				Message.class,
-				Language.class
+				Language.class,
+				Contract.class,
+				ContractId.class,
+				Model.class,
+				ModelId.class,
+				Manufacturer.class,
+				ManufacturerId.class
 		};
 	}
 

Added: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/manytoonewithformula/Model.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/manytoonewithformula/Model.java	                        (rev 0)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/manytoonewithformula/Model.java	2010-01-04 20:12:33 UTC (rev 18403)
@@ -0,0 +1,97 @@
+/*
+  * Hibernate, Relational Persistence for Idiomatic Java
+  *
+  * Copyright (c) 2009, Red Hat, Inc. and/or its affiliates or third-
+  * party contributors as indicated by the @author tags or express 
+  * copyright attribution statements applied by the authors.  
+  * All third-party contributions are distributed under license by 
+  * Red Hat, Inc.
+  *
+  * This copyrighted material is made available to anyone wishing to 
+  * use, modify, copy, or redistribute it subject to the terms and 
+  * conditions of the GNU Lesser General Public License, as published 
+  * by the Free Software Foundation.
+  *
+  * This program is distributed in the hope that it will be useful,
+  * but WITHOUT ANY WARRANTY; without even the implied warranty of 
+  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+  * Lesser General Public License for more details.
+  *
+  * You should have received a copy of the GNU Lesser General Public 
+  * License along with this distribution; if not, write to:
+  * 
+  * Free Software Foundation, Inc.
+  * 51 Franklin Street, Fifth Floor
+  * Boston, MA  02110-1301  USA
+  */
+
+package org.hibernate.test.annotations.manytoonewithformula;
+
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+
+ at Entity
+ at Table(name="MODEL")
+public class Model {
+	
+	private ModelId id;
+	
+	private String name;
+	
+	public Model(ModelId id, String name) {
+		this.id = id;
+		this.name = name;
+	}
+		
+	@Override
+	public int hashCode() {
+		final int prime = 31;
+		int result = 1;
+		result = prime * result + ((id == null) ? 0 : id.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;
+		Model other = (Model) obj;
+		if (id == null) {
+			if (other.id != null)
+				return false;
+		} else if (!id.equals(other.id))
+			return false;
+		return true;
+	}
+
+	public Model() {
+	}
+	
+	@Id
+	public ModelId getId() {
+		return id;
+	}
+	
+	public void setId(ModelId id) {
+		this.id = id;
+	}
+	
+	public String getName() {
+		return name;
+	}
+	
+	public void setName(String name) {
+		this.name = name;
+	}
+	
+	@Override
+	public String toString() {
+		return name;
+	}
+}
+

Added: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/manytoonewithformula/ModelId.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/manytoonewithformula/ModelId.java	                        (rev 0)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/manytoonewithformula/ModelId.java	2010-01-04 20:12:33 UTC (rev 18403)
@@ -0,0 +1,126 @@
+/*
+  * Hibernate, Relational Persistence for Idiomatic Java
+  *
+  * Copyright (c) 2009, Red Hat, Inc. and/or its affiliates or third-
+  * party contributors as indicated by the @author tags or express 
+  * copyright attribution statements applied by the authors.  
+  * All third-party contributions are distributed under license by 
+  * Red Hat, Inc.
+  *
+  * This copyrighted material is made available to anyone wishing to 
+  * use, modify, copy, or redistribute it subject to the terms and 
+  * conditions of the GNU Lesser General Public License, as published 
+  * by the Free Software Foundation.
+  *
+  * This program is distributed in the hope that it will be useful,
+  * but WITHOUT ANY WARRANTY; without even the implied warranty of 
+  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+  * Lesser General Public License for more details.
+  *
+  * You should have received a copy of the GNU Lesser General Public 
+  * License along with this distribution; if not, write to:
+  * 
+  * Free Software Foundation, Inc.
+  * 51 Franklin Street, Fifth Floor
+  * Boston, MA  02110-1301  USA
+  */
+
+package org.hibernate.test.annotations.manytoonewithformula;
+
+import java.io.Serializable;
+import javax.persistence.Column;
+import javax.persistence.Embeddable;
+ 
+ at Embeddable
+public class ModelId implements Serializable {
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+	private Integer companyCode;
+
+	private Integer manufacturerCode;
+
+	private String modelCode;
+
+	public ModelId(Integer companyCode, Integer manufacturerCode,
+			String modelCode) {
+		this.companyCode = companyCode;
+		this.manufacturerCode = manufacturerCode;
+		this.modelCode = modelCode;
+	}
+
+	public ModelId() {
+	}
+
+	@Column(name = "MDL_COMPANY_CODE")
+	public Integer getCompanyCode() {
+		return companyCode;
+	}
+
+	public void setCompanyCode(Integer companyCode) {
+		this.companyCode = companyCode;
+	}
+
+	@Column(name = "MDL_MFG_CODE")
+	public Integer getManufacturerCode() {
+		return manufacturerCode;
+	}
+
+	public void setManufacturerCode(Integer manufacturerCode) {
+		this.manufacturerCode = manufacturerCode;
+	}
+
+	@Column(name = "MDL_CODE")
+	public String getModelCode() {
+		return modelCode;
+	}
+
+	public void setModelCode(String modelCode) {
+		this.modelCode = modelCode;
+	}
+
+	@Override
+	public int hashCode() {
+		final int prime = 31;
+		int result = 1;
+		result = prime * result
+				+ ((companyCode == null) ? 0 : companyCode.hashCode());
+		result = prime
+				* result
+				+ ((manufacturerCode == null) ? 0 : manufacturerCode.hashCode());
+		result = prime * result
+				+ ((modelCode == null) ? 0 : modelCode.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;
+		ModelId other = (ModelId) obj;
+		if (companyCode == null) {
+			if (other.companyCode != null)
+				return false;
+		} else if (!companyCode.equals(other.companyCode))
+			return false;
+		if (manufacturerCode == null) {
+			if (other.manufacturerCode != null)
+				return false;
+		} else if (!manufacturerCode.equals(other.manufacturerCode))
+			return false;
+		if (modelCode == null) {
+			if (other.modelCode != null)
+				return false;
+		} else if (!modelCode.equals(other.modelCode))
+			return false;
+		return true;
+	}
+
+}
+



More information about the hibernate-commits mailing list