@Entity @Table(name = "person") public static class Person { @Id private Long id; @ElementCollection @CollectionTable( name = "call_register", joinColumns = @JoinColumn(name = "person_id") ) @MapKeyType( @Type( type = "org.hibernate.userguide.collections.type.TimestampEpochType" ) ) @MapKeyColumn( name = "call_timestamp_epoch" ) @Column(name = "phone_number") private Map<Date, Integer> callRegister = new HashMap<>(); //Getters and setters are omitted for brevity //end::collections-map-custom-key-type-mapping-example[] public void setId(Long id) { this.id = id; } public Map<Date, Integer> getCallRegister() { return callRegister; } //tag::collections-map-custom-key-type-mapping-example[] } //end::collections-map-custom-key-type-mapping-example[]
if ( key ) { MapKeyType ann = property.getAnnotation( MapKeyType.class ); annType = ann.value();
final MapKeyType mapKeyTypeAnn = navigableXProperty.getAnnotation( MapKeyType.class ); if ( mapKeyTypeAnn != null ) { explicitTypeAnn = mapKeyTypeAnn.value();
private Integer id; @MapKeyType( @Type(type="integer") ) @ElementCollection @Sort(type = SortType.NATURAL)
/** * @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>(); }
@MapKeyType(@Type(type = "java.lang.String")) @Lob @Type(type = "org.hibernate.type.StringClobType")
@MapKeyType(@Type(type = "java.lang.String")) @Lob @Type(type = "org.hibernate.type.StringClobType")