Showing posts with label JPA. Show all posts
Showing posts with label JPA. Show all posts

Thursday, October 30, 2014

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

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 'SCHEMA_ID' and 'SCIM_SCHEMA'


For details check section 2.2.5.3.3. Collection of basic types or embeddable objects or feel free to comment :)



Thursday, October 9, 2014

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 :)





How TOPT Works: Generating OTPs Without Internet Connection

Introduction Have you ever wondered how authentication apps like RSA Authenticator generate One-Time Passwords (OTPs) without requiring an i...