JPA Map<String,String> mapping

Rafa de Castro picture Rafa de Castro · May 12, 2009 · Viewed 69.5k times · Source

How can I map a Map in JPA without using Hibernate's classes?

Answer

Jatin Sehgal picture Jatin Sehgal · Feb 25, 2013

Although answer given by Subhendu Mahanta is correct. But @CollectionOfElements is deprecated. You can use @ElementCollection instead:

@ElementCollection
@JoinTable(name="ATTRIBUTE_VALUE_RANGE", joinColumns=@JoinColumn(name="ID"))
@MapKeyColumn (name="RANGE_ID")
@Column(name="VALUE")
private Map<String, String> attributeValueRange = new HashMap<String, String>();

There is no need to create a separate Entity class for the Map field. It will be done automatically.