Tutorial Home
Hibernate
Advantage of Hibernate over JDBC
Hibernate Setup with an web Application First Hibernate Application Hibernate mapping with Database TABLE Hibernate Data Type-Java Data Type - SQL Data Type mapping One to Many Relation in Hibernate One to Many Relation in Hibernate bi-directional Many to Many Relation in Hibernate HQL: The Hibernate Query Language Criteria Queries Criteria Queries : Equal (eq), Not Equal(ne), Less than (le), greater than (gt),greater than or equal(ge) and Ordering the results Criteria Queries: And OR conditions Hibernate generator to generate id (primary key) prevent concurrent update in Hibernate,slate object updatation in Hibernate,version checking in Hibernate
Struts Model View Controller (MVC) Model View Controller (MVC) Struts Flow-How Struts Works? Struts Tutorial - Struts Setup- First Struts Action class setup Message Resources Validation Framework Validation Framework-client side ForwardAction IncludeAction DispatchAction LookupDispatchAction DynaActionForm DynaActionForm Struts Tutorial - Mutli-click prevention using struts tokens-Prevent Duplicate Submission Logic Iterate Map and List
JSP
JSP Tutorial Introduction to JSP JSP Comments JSP Syntax JSP Scripting Elements :Scriptlet, expression, declaration JSP Directives implicit objects in JSP JSP Actions Introduction to JSP jsp:useBean The jsp:setProperty Action The jsp:getProperty Action Introduction to JSP
Spring
Spring Tutorial
Introduction to Spring Benefits of Using Spring Framework Inversion of Control in Spring Introduction to BeanFactory Dependency Injection in Spring Collections Setter Injection Bean Scopes in Spring Spring IOC Setup Step by Step Bean Lifecycle in Spring ApplicationContext MessageSources in Spring Web Spring MVC framework Developing Your First Spring Web Application Developing Your Second Spring Web Application with Spring Form Developing Your First Spring Web Application with Spring Validation Framework with Code Example Spring integration with Hibernate
Hibernate Tutorial Step by Step -- Code Examples
Many to Many Relation in Hibernate
There are two table EVENTS and SPEAKERS . One Event can have multiple speakers. And One Speaker can speak in multiple Event. So this is many to many relation. To maintain this relation we have to introduce third TABLE name EVENT_SPEAKERS .
Step 1. create a tables EVENTS , SPEAKERS and EVENT_SPEAKERS in your database
create table EVENTS (
event_id number, //PRIMARY KEY
event_name varchar
);
create table SPEAKERS (
speaker_id number, //PRIMARY KEY
speaker_name varchar,
);
create table EVENT_SPEAKERS (
elt number,//primary key
event_id number,
speaker_id number
);
Step 2. event.hbm.xml - Hibenate mapping-Which maps to EVENTS TABLE
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="Event" table="events">
<id name="id" column="event_id" type="long">
<generator class="increment"/>
</id>
<property name="name" column="event_name" type="string" length="100"/>
<set name="speakers" table="event_speakers" cascade="all">
<key column="event_id"/>
<many-to-many class="Speaker"/>
</set>
</class>
</hibernate-mapping>
Step 3. Mapping speaker.hbm.xml- Which maps to SPEAKERS TABLE.
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="Speaker" table="speakers">
<id name="id" column="speaker_id" type="long">
<generator class="increment"/>
</id>
<property name="name" column=" speaker_name" type="string" length="100"/>
<set name="events" table="event_speakers" cascade="all">
<key column="speaker_id"/>
<many-to-many class="Event"/>
</set>
</class>
</hibernate-mapping>
Step 4. Create Event.java bean class.
public class Event{
private long id;
private String name;
private Set speakers;
public void setId(long id) {
this.id = id;
}
public long getId() {
return id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void setSpeakers(Set speakers) {
this.speakers = speakers;
}
public Set getSpeakers() {
return speakers;
}
}
Step 5. Create Speaker.java bean class.
public class Speaker{
private long id;
private String name;
private Set events;
public void setId(long id) {
this.id = id;
}
public long getId() {
return id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Set getEvents() {
return this.events;
}
public void setEvents(Set events) {
this.events = events;
}
}
Step 6. add event.hbm.xml and speaker.hbm.xml into hibernate.cfg.xml
<?xml version='1.0' encoding='utf-8'?>
<lt;!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- Database connection settings -->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/techfaqdb</property>
<property name="connection.username">techfaq</property>
<property name="connection.password">techfaq</property>
<!-- JDBC connection pool (use the built-in) -->
<property name="hibernate.c3p0.min_size">1</property>
<property name="hibernate.c3p0.max_size">4</property>
<property name="hibernate.c3p0.timeout">1800</property>
<property name="hibernate.c3p0.max_statements">50</property>
<!-- MySQL dialect//different for different Database -->
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- Enable Hibernate's automatic session context management -->
<property name="current_session_context_class">thread</property>
<!-- Disable the second-level cache -->
<property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
<!-- Echo all executed SQL to stdout -->
<property name="show_sql">true</property>
<property name="hbm2ddl.auto">update</property>
<mapping resource="event.hbm.xml"/>
<mapping resource="speaker.hbm.xml"/>
</session-factory>
</hibernate-configuration>
Here is the code : how to save and fetch data
Event event = new Event();
event.setName("Inverse test");
event.setSpeakers(new HashSet());
event.getSpeakers().add(new Speaker("Ram", event));
event.getSpeakers().add(new Speaker("Syam", event));
session.save(event); /// Save All the Data
event = (Event) session.load(Event.class, event.getId());
Set speakers = event.getSpeakers();
for (Iterator i = speakers.iterator(); i.hasNext();) {
Speaker speaker = (Speaker) i.next();
System.out.println(speaker.getFirstName());
System.out.println(speaker.getId());
}
The information you are posting should be related to java and ORACLE technology. Not political.
SCJP 5.0 Simulator 642+ Questions With Explanations
SCJP 6.0 Simulator 664+ Questions With Explanations
SCWCD 5.0 Simulator 556+ Questions With Explanations
SCWCD 4.0 Simulator 500+ Questions With Explanations
OCA 10g Simulator 594+ Questions With Explanations
Subscribe to PMP_FOURTH_EDITION
Subscribe to techfaq360