/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ package org.apache.openjpa.persistence.delimited.identifiers; import java.util.HashMap; import java.util.HashSet; import java.util.Map; import java.util.Set; import javax.persistence.CollectionTable; import javax.persistence.Column; import javax.persistence.ElementCollection; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.MapKeyColumn; import javax.persistence.SecondaryTable; import javax.persistence.Table; import javax.persistence.TableGenerator; import javax.persistence.UniqueConstraint; @Entity @Table(name="\"primary entityF\"", schema="\"delim id\"", uniqueConstraints= @UniqueConstraint(columnNames={"\"f name\"", "f_nonDelimName"})) @SecondaryTable(name="\"secondary entityF\"", schema="\"delim id\"", uniqueConstraints= @UniqueConstraint(name="\"sec unq\"", columnNames={"\"secondary name\""})) public class EntityF { @TableGenerator(name = "f_id_gen", table = "\"f_id_gen\"", schema = "\"delim id\"", pkColumnName = "\"gen_pk\"", valueColumnName = "\"gen_value\"") @GeneratedValue(strategy = GenerationType.TABLE, generator = "f_id_gen") @Id private int id; // Note: Delimited columnDefinition is not supported on some DBs // TODO: copy into a separate entity and conditionally run a different test @Column(name="\"f name\"", columnDefinition="char(15)") private String name; @Column(name="f_nonDelimName") private String nonDelimName; @Column(name="\"secondary name\"", table="\"secondary entityF\"") private String secName; @ElementCollection // CollectionTable with default name generation @CollectionTable private Set<String> cSet = new HashSet<String>(); @ElementCollection @CollectionTable(name="\"collectionDelimSet\"", schema="\"delim id\"") private Set<String> collectionDelimSet = new HashSet<String>(); @ElementCollection // MapKeyColumn with default name generation @MapKeyColumn private Map<String, String> cMap = new HashMap<String, String>(); @ElementCollection // Note: Delimited column definition is not supported on some DBs, so // it is not delimited here // TODO: create a separate entity and conditionally run the test on a supported DB @MapKeyColumn(name="\"mapKey\"", columnDefinition="varchar(20)", table="\"d colmap\"") private Map<String, String> dcMap = new HashMap<String, String>(); public EntityF(String name) { this.name = name; } /** * @return the id */ public int getId() { return id; } /** * @param id the id to set */ public void setId(int id) { this.id = id; } /** * @return the name */ public String getName() { return name; } /** * @param name the name to set */ public void setName(String name) { this.name = name; } /** * @return the nonDelimName */ public String getNonDelimName() { return nonDelimName; } /** * @param nonDelimName the nonDelimName to set */ public void setNonDelimName(String nonDelimName) { this.nonDelimName = nonDelimName; } /** * @return the secName */ public String getSecName() { return secName; } /** * @param secName the secName to set */ public void setSecName(String secName) { this.secName = secName; } /** * @return the collectionSet */ public Set<String> getCollectionSet() { return cSet; } /** * @param collectionSet the collectionSet to set */ public void setCollectionSet(Set<String> collectionSet) { this.cSet = collectionSet; } public void addCollectionSet(String item) { cSet.add(item); } /** * @return the collectionNamedSet */ public Set<String> getCollectionDelimSet() { return collectionDelimSet; } /** * @param collectionNamedSet the collectionNamedSet to set */ public void setCollectionDelimSet(Set<String> collectionDelimSet) { this.collectionDelimSet = collectionDelimSet; } public void addCollectionDelimSet(String item) { this.collectionDelimSet.add(item); } /** * @return the collectionMap */ public Map<String, String> getCollectionMap() { return cMap; } /** * @param collectionMap the collectionMap to set */ public void setCollectionMap(Map<String, String> collectionMap) { this.cMap = collectionMap; } public void addCollectionMap(String key, String value) { cMap.put(key, value); } /** * @return the delimCollectionMap */ public Map<String, String> getDelimCollectionMap() { return dcMap; } /** * @param delimCollectionMap the delimCollectionMap to set */ public void setDelimCollectionMap(Map<String, String> delimCollectionMap) { this.dcMap = delimCollectionMap; } public void addDelimCollectionMap(String key, String value) { dcMap.put(key, value); } }