blob: 98f50cd341eca959e147b63c438823e327434f52 [file] [log] [blame]
/*
* Copyright (c) 2005, 2020 Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2005, 2015 SAP. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0,
* or the Eclipse Distribution License v. 1.0 which is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
*/
// Contributors:
// SAP - initial API and implementation
package org.eclipse.persistence.testing.models.wdf.jpa1.employee;
import java.io.Serializable;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.Id;
import jakarta.persistence.IdClass;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
@Entity
@IdClass(Item_Attribute_Byte.AttributeId.class)
@Table(name = "BYTE_ITEM_ATT")
public class Item_Attribute_Byte implements Serializable {
@Id
@Column(name = "ITEM_ID", insertable = false, updatable = false)
private byte[] itemId;
@Id
@Column(name = "ATT_KEY")
private String attKey;
@Column(name = "ATT_VAL")
private String attVal;
@SuppressWarnings("unused")
@ManyToOne
@JoinColumn(name = "ITEM_ID")
private Item_Byte item;
private static final long serialVersionUID = 1L;
protected Item_Attribute_Byte() {
}
public Item_Attribute_Byte(Item_Byte item, byte[] itemId, String key, String val) {
this.item = item;
this.itemId = itemId;
this.attKey = key;
this.attVal = val;
}
public byte[] getItemId() {
return this.itemId;
}
public String getAttKey() {
return this.attKey;
}
public String getAttVal() {
return this.attVal;
}
public String toString() {
StringBuilder str = new StringBuilder();
str.append("item " + this.getItemId());
str.append(": " + this.getAttKey());
str.append(" - " + this.attVal);
return str.toString();
}
// Primary Key Class with wrong equals and hashCode methods (does not use util.Arrays.equals)
public static class AttributeId implements Serializable {
private byte[] itemId;
private String attKey;
private static final long serialVersionUID = 1L;
public AttributeId() {
}
protected AttributeId(byte[] itemId, String key) {
this.itemId = itemId;
this.attKey = key;
}
public byte[] getItemId() {
return this.itemId;
}
public void setItemId(byte[] itemId) {
this.itemId = itemId;
}
public String getAttKey() {
return this.attKey;
}
public void setAttKey(String attKey) {
this.attKey = attKey;
}
@Override
public boolean equals(Object o) {
if (o == this) {
return true;
}
if (!(o instanceof AttributeId)) {
return false;
}
AttributeId other = (AttributeId) o;
return this.itemId.equals(other.itemId) && this.attKey.equals(other.attKey);
}
@Override
public int hashCode() {
return this.itemId.hashCode() ^ this.attKey.hashCode();
}
}
}