/*
* Hibernate, Relational Persistence for Idiomatic Java
*
* License: GNU Lesser General Public License (LGPL), version 2.1 or later.
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
*/
package org.hibernate.test.annotations.enumerated.custom_mapkey;
import java.util.HashMap;
import java.util.Map;
import javax.persistence.CollectionTable;
import javax.persistence.ElementCollection;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.MapKeyColumn;
import javax.persistence.MapKeyEnumerated;
import org.hibernate.annotations.MapKeyType;
import org.hibernate.annotations.Type;
import org.hibernate.annotations.TypeDef;
import org.hibernate.test.annotations.enumerated.custom_types.LastNumberType;
import org.hibernate.test.annotations.enumerated.enums.Common;
import org.hibernate.test.annotations.enumerated.enums.FirstLetter;
import org.hibernate.test.annotations.enumerated.enums.LastNumber;
/**
* @author Janario Oliveira
*/
@Entity
@TypeDef(typeClass = LastNumberType.class, defaultForType = LastNumber.class)
public class EntityMapEnum {
@Id
@GeneratedValue
int id;
@ElementCollection
Map<Common, String> ordinalMap = new HashMap<Common, String>();
@ElementCollection
@MapKeyEnumerated(EnumType.STRING)
Map<Common, String> stringMap = new HashMap<Common, String>();
@ElementCollection
@MapKeyType(@Type(type = "org.hibernate.test.annotations.enumerated.custom_types.FirstLetterType"))
Map<FirstLetter, String> firstLetterMap = new HashMap<FirstLetter, String>();
@ElementCollection
Map<LastNumber, String> lastNumberMap = new HashMap<LastNumber, String>();
@MapKeyEnumerated(EnumType.STRING)
@ElementCollection
@CollectionTable(name = "overridingMap")
@MapKeyColumn(name = "overridingMap_key")
Map<LastNumber, String> explicitOverridingImplicitMap = new HashMap<LastNumber, String>();
}