package
com.gfg.example;
import
java.util.HashSet;
import
java.util.Iterator;
import
java.util.List;
import
java.util.Set;
import
javax.persistence.TypedQuery;
import
org.hibernate.HibernateException;
import
org.hibernate.Query;
import
org.hibernate.Session;
import
org.hibernate.SessionFactory;
import
org.hibernate.Transaction;
import
org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import
org.hibernate.cfg.Configuration;
import
org.hibernate.service.ServiceRegistry;
public
class
HibernateTest {
private
static
SessionFactory factory;
private
static
ServiceRegistry serviceRegistry;
public
static
void
main(String[] args) {
Configuration config =
new
Configuration();
config.configure();
config.addAnnotatedClass(Todo.
class
);
config.addResource(
"Todo.hbm.xml"
);
serviceRegistry =
new
StandardServiceRegistryBuilder().applySettings(config.getProperties()).build();
factory = config.buildSessionFactory(serviceRegistry);
HibernateTest hbTest =
new
HibernateTest();
HashSet<String> a1 =
new
HashSet<String>();
a1.add(
"gfg1"
);
a1.add(
"gfg2"
);
HashSet<String> a2 =
new
HashSet<String>();
a2.add(
"gfg3"
);
a2.add(
"gfg4"
);
hbTest.insertTodo(
1
,
"Health"
,
"Do Workout"
, a1);
hbTest.insertTodo(
2
,
"Learning"
,
"Solve Code"
, a2);
hbTest.fetchTodo();
}
private
long
insertTodo(
int
id, String taskname, String task, Set<String> s) {
Session session = factory.openSession();
Transaction tx =
null
;
Integer TodoS =
null
;
try
{
tx = session.beginTransaction();
Todo e =
new
Todo();
e.setTaskid(id);
e.setTaskName(taskname);
e.setTask(task);
e.setAllocations(s);
TodoS = (Integer) session.save(e);
tx.commit();
}
catch
(HibernateException ex) {
if
(tx !=
null
)
tx.rollback();
ex.printStackTrace();
}
finally
{
session.close();
}
return
TodoS;
}
private
void
fetchTodo() {
Session session = factory.openSession();
Transaction tx =
null
;
try
{
tx = session.beginTransaction();
Query query = session.createQuery(
"from Todo"
);
List<Todo> list = query.list();
Iterator<Todo> itr = list.iterator();
while
(itr.hasNext()) {
Todo q = itr.next();
System.out.println(
"Task Name: "
+ q.getTaskName());
System.out.println(
"Task : "
+ q.getTask());
System.out.println(
"Allocations : "
);
Set<String> set = q.getAllocations();
Iterator<String> itr2 = set.iterator();
while
(itr2.hasNext()) {
System.out.println(itr2.next());
}
}
}
catch
(HibernateException ex) {
if
(tx !=
null
)
tx.rollback();
ex.printStackTrace();
}
finally
{
session.close();
}
}
}