/*******************************************************************************
* 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:
* Oracle - initial API and implementation from Oracle TopLink
* 01/26/2011-2.3 Guy Pelletier
* - 307664: Lifecycle callbacks not called for object from IndirectSet
******************************************************************************/
package org.eclipse.persistence.testing.models.jpa.inheritance;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.*;
import org.eclipse.persistence.annotations.Convert;
import org.eclipse.persistence.annotations.TypeConverter;
@Entity
@Table(name="CMP3_AAA")
@Inheritance(strategy=InheritanceType.JOINED)
@DiscriminatorColumn(name="DTYPES", discriminatorType=DiscriminatorType.STRING)
@DiscriminatorValue("1")
public class AAA {
String id;
String foo;
Set<DDD> ddds;
private Set<String> stringSet;
public AAA() {
ddds = new HashSet<DDD>();
}
AAA(String id) {
this();
this.id = id;
}
@Id
@GeneratedValue(strategy=GenerationType.TABLE, generator="CMP3_AAA_GENERATOR")
@TableGenerator(name = "CMP3_AAA_GENERATOR", table = "CMP3_AAA_SEQ")
@Convert("stringToInt")
@TypeConverter(name="stringToInt", dataType=Integer.class, objectType=String.class)
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getFoo() {
return foo;
}
public void setFoo(String foo) {
this.foo = foo;
}
@OneToMany(mappedBy="aaa", cascade=CascadeType.ALL)
public Set<DDD> getDdds() {
return ddds;
}
public void setDdds(Set<DDD> ddds) {
this.ddds = ddds;
}
@ElementCollection(targetClass=String.class)
@CollectionTable(name="AAA_STRINGSET")
public Set<String> getStringSet() {
return stringSet;
}
public void setStringSet(Set<String> stringSet) {
this.stringSet = stringSet;
}
}