blob: ba13104b482806aac7a43cebe7178d1911d40d69 [file] [log] [blame]
/*
* Copyright (c) 2012, 2020 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 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:
// 11/22/2012-2.5 Guy Pelletier
// - 389090: JPA 2.1 DDL Generation Support (index metadata support)
package org.eclipse.persistence.testing.models.jpa21.advanced.ddl;
import java.util.ArrayList;
import java.util.List;
import jakarta.persistence.CollectionTable;
import jakarta.persistence.Column;
import jakarta.persistence.ElementCollection;
import jakarta.persistence.Entity;
import jakarta.persistence.Index;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.JoinTable;
import jakarta.persistence.ManyToMany;
import jakarta.persistence.SecondaryTable;
import jakarta.persistence.Table;
@Entity
@Table(
name="JPA21_FORK",
indexes=@Index(
// default the name to JPA21_FORK_INDEX_STYLE_COLOR
columnList="STYLE, COLOR"
)
)
@SecondaryTable(
name="JPA21_FORK_COSTS",
indexes=@Index(
name="FORK_COSTS_INDEX",
columnList="COST, RENTAL_COST"
)
)
public class Fork extends Utensil {
@Column(name="COST", table="JPA21_FORK_COSTS")
public Double price;
@Column(name="RENTAL_COST", table="JPA21_FORK_COSTS")
public Double rental;
public String style;
public String color;
@ElementCollection
@CollectionTable(
name="JPA21_FORK_USES",
indexes=@Index(
name="JPA21_FORK_USES_INDEX",
columnList="DESCRIP"
)
)
@Column(name="DESCRIP")
public List<String> uses;
@ManyToMany
@JoinTable(
name="JPA21_FORK_FORK_USERS",
joinColumns=@JoinColumn(name="FORK_ID"),
inverseJoinColumns=@JoinColumn(name="FORK_USER_ID"),
indexes=@Index(
name="JPA21_FORK_USERS_INDEX",
columnList="FORK_USER_ID, FORK_ID"
)
)
public List<ForkUser> users;
public Fork() {
users = new ArrayList<ForkUser>();
}
public void addUser(ForkUser user) {
users.add(user);
}
public String getColor() {
return color;
}
public Double getPrice() {
return price;
}
public Double getRental() {
return rental;
}
public String getStyle() {
return style;
}
public List<ForkUser> getUsers() {
return users;
}
public List<String> getUses() {
return uses;
}
public void setColor(String color) {
this.color = color;
}
public void setPrice(Double price) {
this.price = price;
}
public void setRental(Double rental) {
this.rental = rental;
}
public void setStyle(String style) {
this.style = style;
}
public void setUsers(List<ForkUser> users) {
this.users = users;
}
public void setUses(List<String> uses) {
this.uses = uses;
}
}