Posts

Showing posts with the label JPA

How to Map a list of strings with JPA/Hibernate annotations ?

Image
Yesterday while working on my project, I got one requirement where I need to store list of Array into the database, I checked on Google, went through various site but didn't get much information. Everyone talks about creating new entity and do onetomany relationship BUT I wanted to create a collection of basic types. Finally I come across @ElementCollection annotation provided by JPA 2.0 which resolves my problem. Problem : Input JSON which we need to store in DB: { "schemas": ["urn:scim:schemas:core:1.0", "urn:scim:schemas:extension:enterprise:1.0"] }            Where schemas is Array of String. Solution : Just add following annotation in your POJO i,e @ElementCollection @CollectionTable(name = "SCIM_SCHEMAS", joinColumns = @JoinColumn(name = "SCHEMA_ID")) @Column(name = "SCIM_SCHEMA") private List<String> schemas; It will create the table named "SCIM_SCHEMAS" having columns 'SCHE...

Hibernate Error - Caused by: org.hibernate.DuplicateMappingException: duplicate import:

In hibernate, You cannot have two classes with the same name in the same or different packages else you will get an error at runtime like " Caused by: org.hibernate.DuplicateMappingException: duplicate import: ....(try using auto-import="false ")" I have resolved this issue by adding property name on the Entity annotation. Let us suppose I have Meta class in two different packages "com.database.user" and "com.database.group', you can resolve it as : package com.database.user @Entity( name= "com.database.user" ) @Table(name="USER_META") public class Meta package com.database.group @Entity( name= "com.database.group" ) @Table(name="GROUP_META") public class Meta There must be some other ways too to resolve this issue, So please feel free to share it :)