import
com.gfg.sortedmapmapping.pojo.Book;
import
com.gfg.sortedmapmapping.pojo.ProgrammingLanguages;
import
java.util.Iterator;
import
java.util.List;
import
java.util.Map;
import
java.util.TreeMap;
import
javax.security.auth.Subject;
import
org.hibernate.HibernateException;
import
org.hibernate.Session;
import
org.hibernate.SessionFactory;
import
org.hibernate.Transaction;
import
org.hibernate.cfg.Configuration;
public
class
SortedMapMappingPatternOfStoringData {
private
static
SessionFactory factory;
public
static
void
main(String[] args)
{
try
{
factory =
new
Configuration()
.configure()
.buildSessionFactory();
}
catch
(Throwable ex) {
System.err.println(
"Failed to create sessionFactory object."
+ ex);
throw
new
ExceptionInInitializerError(ex);
}
TreeMap map =
new
TreeMap();
map.put(
"Java1"
,
new
Book(
"J2EE"
,
"Dave Evans"
));
map.put(
"Java2"
,
new
Book(
"Core Java Volume I"
,
"Cay S. Horstmann"
));
map.put(
"Java3"
,
new
Book(
"Effective Java"
,
"Joshua Bloch"
));
ProgrammingLanguages language
=
new
ProgrammingLanguages(
"Java"
);
language.setBooks(map);
SortedMapMappingPatternOfStoringData
sortedMapMappingPatternOfStoringData
=
new
SortedMapMappingPatternOfStoringData();
Integer languageId
= sortedMapMappingPatternOfStoringData
.addLanguage(language);
sortedMapMappingPatternOfStoringData
.listLanguageAndBookDetails();
}
public
Integer
addLanguage(ProgrammingLanguages language)
{
Session session = factory.openSession();
Transaction tx =
null
;
Integer languageId =
null
;
try
{
tx = session.beginTransaction();
languageId = (Integer)session.save(language);
tx.commit();
}
catch
(HibernateException e) {
if
(tx !=
null
)
tx.rollback();
e.printStackTrace();
}
finally
{
session.close();
}
return
languageId;
}
public
void
listLanguageAndBookDetails()
{
Session session = factory.openSession();
Transaction tx =
null
;
try
{
tx = session.beginTransaction();
List programmingLanguages
= session
.createQuery(
"FROM ProgrammingLanguages"
)
.list();
for
(Iterator iterator
= programmingLanguages.iterator();
iterator.hasNext();) {
ProgrammingLanguages language
= (ProgrammingLanguages)iterator.next();
System.out.print(
"Language Name: "
+ language.getLanguageName());
Map books = language.getBooks();
System.out.println(
"Book Name:"
+ ((Book)books.get(
"Java1"
))
.getBookName());
System.out.println(
"Author Name:"
+ ((Book)books.get(
"Java1"
))
.getAuthorName());
System.out.println(
"Book Name:"
+ ((Book)books.get(
"Java2"
))
.getBookName());
System.out.println(
"Author Name:"
+ ((Book)books.get(
"Java2"
))
.getAuthorName());
System.out.println(
"Book Name:"
+ ((Book)books.get(
"Java3"
))
.getBookName());
System.out.println(
"Author Name:"
+ ((Book)books.get(
"Java3"
))
.getAuthorName());
}
tx.commit();
}
catch
(HibernateException e) {
if
(tx !=
null
)
tx.rollback();
e.printStackTrace();
}
finally
{
session.close();
}
}
}