import
java.util.HashSet;
import
java.util.Iterator;
import
java.util.List;
import
java.util.Set;
import
org.hibernate.Criteria;
import
org.hibernate.HibernateException;
import
org.hibernate.Session;
import
org.hibernate.SessionFactory;
import
org.hibernate.Transaction;
import
org.hibernate.cfg.Configuration;
import
org.hibernate.criterion.Criterion;
import
org.hibernate.criterion.LogicalExpression;
import
org.hibernate.criterion.Restrictions;
public
class
GeekEmployeeManytoManyExample {
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);
}
GeekEmployeeManytoManyExample geekEmployeeObject
=
new
GeekEmployeeManytoManyExample();
HashSet skillSets =
new
HashSet();
skillSets.add(
new
SkillsetData(
"Java"
));
skillSets.add(
new
SkillsetData(
"Python"
));
skillSets.add(
new
SkillsetData(
"R Programming"
));
HashSet databaseSkillSets =
new
HashSet();
databaseSkillSets.add(
new
SkillsetData(
"MySQL"
));
databaseSkillSets.add(
new
SkillsetData(
"SQL Server"
));
databaseSkillSets.add(
new
SkillsetData(
"MongoDB"
));
HashSet generalSkillset =
new
HashSet();
generalSkillset.add(skillSets);
generalSkillset.add(databaseSkillSets);
Integer empID1 = geekEmployeeObject.addEmployee(
"GeekA"
,
"GeekA"
,
100000
, skillSets);
Integer empID2 = geekEmployeeObject.addEmployee(
"GeekB"
,
"GeekB"
,
50000
, databaseSkillSets);
Integer empID3 = geekEmployeeObject.addEmployee(
"GeekC"
,
"GeekC"
,
50000
, skillSets);
}
public
Integer addEmployee(String fname, String lname,
int
salary, Set skillSets)
{
Session session = factory.openSession();
Transaction tx =
null
;
Integer employeeID =
null
;
try
{
tx = session.beginTransaction();
GeekEmployeeData employee
=
new
GeekEmployeeData(fname, lname,
salary);
employee.setSkillSets(skillSets);
employeeID = (Integer)session.save(employee);
tx.commit();
}
catch
(HibernateException e) {
if
(tx !=
null
)
tx.rollback();
e.printStackTrace();
}
finally
{
session.close();
}
return
employeeID;
}
}