/******************************************************************************* * Copyright (c) 1998, 2015 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: * 06/02/2009-2.0 Guy Pelletier * - 278768: JPA 2.0 Association Override Join Table ******************************************************************************/ package org.eclipse.persistence.testing.models.jpa.inherited; import java.util.ArrayList; import java.util.List; import javax.persistence.Column; import javax.persistence.Embeddable; import javax.persistence.JoinColumn; import javax.persistence.JoinTable; import javax.persistence.ManyToMany; import javax.persistence.OneToMany; import static javax.persistence.CascadeType.MERGE; import static javax.persistence.CascadeType.PERSIST; @Embeddable public class Accredidation { @Column(name="BOGUS_COLUMN_NAME") // Expert beer consumer will use the attribute override from the // accredidation mapping from RatedBeerConsumer, whereas, novice beer // consumer will provide a class level attribute override to override // the above mentioned attribute override. // If these overrides are not picked up, the column name will be picked up // and errors will occur. private String details; @OneToMany(cascade={PERSIST, MERGE}) @JoinColumn(name="BOGUS_JOIN_COLUMN_NAME") // Expert beer consumer will use the association overrides from the // accredidation mapping from RatedBeerConsumer, whereas, novice beer // consumer will provide a class level association override to override // the above mentioned association override. // If these overrides are not picked up, this join column will be picked up // and errors will occur. private List<Official> officials; @ManyToMany(cascade={PERSIST, MERGE}) @JoinTable(name="BOGUS_JOIN_TABLE_NAME") // Expert beer consumer will use the association overrides from the // accredidation mapping from RatedBeerConsumer, whereas, novice beer // consumer will provide a class level association override to override // the above mentioned association override. // If these overrides are not picked up, the join table will default // and errors will occur. private List<Witness> witnesses; public Accredidation() { officials = new ArrayList<Official>(); witnesses = new ArrayList<Witness>(); } public void addOfficial(Official official) { officials.add(official); } public void addWitness(Witness witness) { witnesses.add(witness); } public String getDetails() { return details; } public List<Official> getOfficials() { return officials; } public List<Witness> getWitnesses() { return witnesses; } public void setDetails(String details) { this.details = details; } public void setOfficials(List<Official> officials) { this.officials = officials; } public void setWitnesses(List<Witness> witnesses) { this.witnesses = witnesses; } }