/*******************************************************************************
* Copyright (c) 2011, 2016 Oracle and/or its affiliates. All rights reserved.
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
* which accompanies this distribution.
* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
* and the Eclipse Distribution License is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* Contributors:
* David Minsky - initial API and implementation
* 01/15/2016:2.7 Mythily Parthasarathy
* - 485984-Added reference to Shelf entity
******************************************************************************/
package org.eclipse.persistence.testing.models.jpa.advanced.fetchgroup;
import java.util.HashMap;
import java.util.Map;
import javax.persistence.Basic;
import javax.persistence.CollectionTable;
import javax.persistence.Column;
import javax.persistence.ElementCollection;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.MapKeyColumn;
import javax.persistence.Table;
import org.eclipse.persistence.annotations.PrivateOwned;
@Entity
@Table(name="JPA_HELMET")
public class Helmet {
@Id
protected int id;
@Basic(fetch=FetchType.LAZY)
protected String color;
@ElementCollection
@PrivateOwned
@CollectionTable(
name="JPA_HELMET_PROPERTIES",
joinColumns={
@JoinColumn(name="HELMET_ID", referencedColumnName="ID")
})
@Column(name="PROPERTY_VALUE")
@MapKeyColumn(name="PROPERTY_NAME")
protected Map<String, String> properties;
@ManyToOne(targetEntity = Shelf.class)
@JoinColumn(name = "SHELF_ID", referencedColumnName = "ID")
private Shelf shelf;
public Helmet() {
super();
this.properties = new HashMap<String, String>();
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public Map<String, String> getProperties() {
return properties;
}
public void setProperties(Map<String, String> properties) {
this.properties = properties;
}
public void addProperty(String propertyName, String propertyValue) {
getProperties().put(propertyName, propertyValue);
}
public void removeProperty(String propertyName) {
getProperties().remove(propertyName);
}
public void setShelf(Shelf shelf) {
this.shelf = shelf;
}
public Shelf getShelf() {
return this.shelf;
}
}