<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Bibekjyoti&#039;s Blog</title>
	<atom:link href="http://bibekjyoti.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://bibekjyoti.wordpress.com</link>
	<description>Just another WordPress.com weblog</description>
	<lastBuildDate>Fri, 30 Apr 2010 11:20:32 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='bibekjyoti.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Bibekjyoti&#039;s Blog</title>
		<link>http://bibekjyoti.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://bibekjyoti.wordpress.com/osd.xml" title="Bibekjyoti&#039;s Blog" />
	<atom:link rel='hub' href='http://bibekjyoti.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Many To Many</title>
		<link>http://bibekjyoti.wordpress.com/2010/04/30/many-to-many/</link>
		<comments>http://bibekjyoti.wordpress.com/2010/04/30/many-to-many/#comments</comments>
		<pubDate>Fri, 30 Apr 2010 11:20:32 +0000</pubDate>
		<dc:creator>bibekjyoti</dc:creator>
				<category><![CDATA[Hibernate]]></category>

		<guid isPermaLink="false">http://bibekjyoti.wordpress.com/?p=21</guid>
		<description><![CDATA[Stock Table CREATE TABLE &#8220;public&#8221;.&#8221;stock&#8221; ( &#8220;stock_id&#8221; INTEGER NOT NULL, &#8220;stock_code&#8221; VARCHAR(10) NOT NULL, &#8220;stock_name&#8221; VARCHAR(20) NOT NULL, CONSTRAINT &#8220;stock_pkey&#8221; PRIMARY KEY(&#8220;stock_id&#8221;), CONSTRAINT &#8220;stock_stock_code_key&#8221; UNIQUE(&#8220;stock_code&#8221;), CONSTRAINT &#8220;stock_stock_name_key&#8221; UNIQUE(&#8220;stock_name&#8221;) ) ; CREATE TABLE &#8220;public&#8221;.&#8221;category&#8221; ( &#8220;category_id&#8221; INTEGER NOT NULL, &#8220;name&#8221; VARCHAR(15), &#8220;desc&#8221; VARCHAR, CONSTRAINT &#8220;category_pkey&#8221; PRIMARY KEY(&#8220;category_id&#8221;) ) WITH OIDS; STOCK_CATEGORY CREATE TABLE &#8220;public&#8221;.&#8221;stock_category&#8221; ( &#8220;stock_category_id&#8221; [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bibekjyoti.wordpress.com&amp;blog=10625007&amp;post=21&amp;subd=bibekjyoti&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>Stock Table</strong></p>
<p>CREATE TABLE &#8220;public&#8221;.&#8221;stock&#8221; (<br />
  &#8220;stock_id&#8221; INTEGER NOT NULL,<br />
  &#8220;stock_code&#8221; VARCHAR(10) NOT NULL,<br />
  &#8220;stock_name&#8221; VARCHAR(20) NOT NULL,<br />
  CONSTRAINT &#8220;stock_pkey&#8221; PRIMARY KEY(&#8220;stock_id&#8221;),<br />
  CONSTRAINT &#8220;stock_stock_code_key&#8221; UNIQUE(&#8220;stock_code&#8221;),<br />
  CONSTRAINT &#8220;stock_stock_name_key&#8221; UNIQUE(&#8220;stock_name&#8221;)<br />
) ;</p>
<p>CREATE TABLE &#8220;public&#8221;.&#8221;category&#8221; (<br />
  &#8220;category_id&#8221; INTEGER NOT NULL,<br />
  &#8220;name&#8221; VARCHAR(15),<br />
  &#8220;desc&#8221; VARCHAR,<br />
  CONSTRAINT &#8220;category_pkey&#8221; PRIMARY KEY(&#8220;category_id&#8221;)<br />
) WITH OIDS;<br />
<strong>STOCK_CATEGORY</strong></p>
<p>CREATE TABLE &#8220;public&#8221;.&#8221;stock_category&#8221; (<br />
  &#8220;stock_category_id&#8221; INTEGER NOT NULL,<br />
  &#8220;stock_id&#8221; INTEGER,<br />
  &#8220;category_id&#8221; INTEGER,<br />
  CONSTRAINT &#8220;stock_category_pkey&#8221; PRIMARY KEY(&#8220;stock_category_id&#8221;),<br />
  CONSTRAINT &#8220;stock_category_stock_id_key&#8221; UNIQUE(&#8220;stock_id&#8221;, &#8220;category_id&#8221;),<br />
  CONSTRAINT &#8220;stock_category_fk&#8221; FOREIGN KEY (&#8220;category_id&#8221;)<br />
    REFERENCES &#8220;public&#8221;.&#8221;category&#8221;(&#8220;category_id&#8221;)<br />
    ON DELETE NO ACTION<br />
    ON UPDATE NO ACTION<br />
    NOT DEFERRABLE,<br />
  CONSTRAINT &#8220;stock_category_fk1&#8243; FOREIGN KEY (&#8220;stock_id&#8221;)<br />
    REFERENCES &#8220;public&#8221;.&#8221;stock&#8221;(&#8220;stock_id&#8221;)<br />
    ON DELETE NO ACTION<br />
    ON UPDATE NO ACTION<br />
    NOT DEFERRABLE<br />
)</p>
<p><strong>StockCategory Class</strong></p>
<p>package manytomany.com.mkyong.common;<br />
// Generated Jan 20, 2010 1:36:53 PM by Hibernate Tools 3.2.5.Beta</p>
<p>import javax.persistence.Column;<br />
import javax.persistence.Entity;<br />
import javax.persistence.FetchType;<br />
import javax.persistence.GeneratedValue;<br />
import static javax.persistence.GenerationType.IDENTITY;<br />
import javax.persistence.Id;<br />
import javax.persistence.JoinColumn;<br />
import javax.persistence.ManyToOne;<br />
import javax.persistence.Table;<br />
import javax.persistence.UniqueConstraint;</p>
<p>/**<br />
 * StockCategory generated by hbm2java<br />
 */<br />
@Entity<br />
@Table(name = &#8220;stock_category&#8221;, schema=&#8221;public&#8221;, uniqueConstraints = @UniqueConstraint(columnNames = {<br />
		&#8220;stock_id&#8221;, &#8220;category_id&#8221; }))<br />
public class StockCategory implements java.io.Serializable {</p>
<p>	private Integer stockCategoryId;<br />
	private Stock stock;<br />
	private Category category;</p>
<p>	public StockCategory() {<br />
	}</p>
<p>	public StockCategory(Stock stock, Category category) {<br />
		this.stock = stock;<br />
		this.category = category;<br />
	}</p>
<p>	@Id<br />
//	@GeneratedValue(strategy = IDENTITY)<br />
	@Column(name = &#8220;stock_category_id&#8221;, unique = true, nullable = false)<br />
	public Integer getStockCategoryId() {<br />
		return this.stockCategoryId;<br />
	}</p>
<p>	public void setStockCategoryId(Integer stockCategoryId) {<br />
		this.stockCategoryId = stockCategoryId;<br />
	}</p>
<p>	@ManyToOne(fetch = FetchType.LAZY)<br />
	@JoinColumn(name = &#8220;stock_id&#8221;, nullable = false)<br />
	public Stock getStock() {<br />
		return this.stock;<br />
	}</p>
<p>	public void setStock(Stock stock) {<br />
		this.stock = stock;<br />
	}</p>
<p>	@ManyToOne(fetch = FetchType.LAZY)<br />
	@JoinColumn(name = &#8220;category_id&#8221;, nullable = false)<br />
	public Category getCategory() {<br />
		return this.category;<br />
	}</p>
<p>	public void setCategory(Category category) {<br />
		this.category = category;<br />
	}</p>
<p>}</p>
<p><strong>Stock Class </strong></p>
<p>package manytomany.com.mkyong.common;</p>
<p>// Generated Jan 20, 2010 1:36:53 PM by Hibernate Tools 3.2.5.Beta</p>
<p>import java.util.HashSet;<br />
import java.util.Set;<br />
import javax.persistence.Column;<br />
import javax.persistence.Entity;<br />
import javax.persistence.FetchType;<br />
import javax.persistence.GeneratedValue;<br />
import static javax.persistence.GenerationType.IDENTITY;<br />
import javax.persistence.Id;<br />
import javax.persistence.OneToMany;<br />
import javax.persistence.Table;<br />
import javax.persistence.UniqueConstraint;</p>
<p>/**<br />
 * Stock generated by hbm2java<br />
 */<br />
@Entity<br />
@Table(name = &#8220;stock&#8221;, schema=&#8221;public&#8221;, uniqueConstraints = {<br />
		@UniqueConstraint(columnNames = &#8220;stock_name&#8221;),<br />
		@UniqueConstraint(columnNames = &#8220;stock_code&#8221;) })<br />
public class Stock implements java.io.Serializable {</p>
<p>	private Integer stockId;<br />
	private String stockCode;<br />
	private String stockName;<br />
	private Set stockCategories = new HashSet(0);</p>
<p>	public Stock() {<br />
	}</p>
<p>	public Stock(String stockCode, String stockName) {<br />
		this.stockCode = stockCode;<br />
		this.stockName = stockName;<br />
	}</p>
<p>	public Stock(String stockCode, String stockName,<br />
			Set stockCategories) {<br />
		this.stockCode = stockCode;<br />
		this.stockName = stockName;<br />
		this.stockCategories = stockCategories;<br />
	}</p>
<p>	@Id<br />
	//@GeneratedValue(strategy = IDENTITY)<br />
	@Column(name = &#8220;stock_id&#8221;, unique = true, nullable = false)<br />
	public Integer getStockId() {<br />
		return this.stockId;<br />
	}</p>
<p>	public void setStockId(Integer stockId) {<br />
		this.stockId = stockId;<br />
	}</p>
<p>	@Column(name = &#8220;stock_code&#8221;, unique = true, nullable = false, length = 10)<br />
	public String getStockCode() {<br />
		return this.stockCode;<br />
	}</p>
<p>	public void setStockCode(String stockCode) {<br />
		this.stockCode = stockCode;<br />
	}</p>
<p>	@Column(name = &#8220;stock_name&#8221;, unique = true, nullable = false, length = 20)<br />
	public String getStockName() {<br />
		return this.stockName;<br />
	}</p>
<p>	public void setStockName(String stockName) {<br />
		this.stockName = stockName;<br />
	}</p>
<p>	@OneToMany(fetch = FetchType.LAZY, mappedBy = &#8220;stock&#8221;)<br />
	public Set getStockCategories() {<br />
		return this.stockCategories;<br />
	}</p>
<p>	public void setStockCategories(Set stockCategories) {<br />
		this.stockCategories = stockCategories;<br />
	}</p>
<p>}</p>
<p><strong>Category Class</strong></p>
<p>package manytomany.com.mkyong.common;</p>
<p>// Generated Jan 20, 2010 1:36:53 PM by Hibernate Tools 3.2.5.Beta</p>
<p>import java.util.HashSet;<br />
import java.util.Set;<br />
import javax.persistence.Column;<br />
import javax.persistence.Entity;<br />
import javax.persistence.FetchType;<br />
import javax.persistence.GeneratedValue;<br />
import static javax.persistence.GenerationType.IDENTITY;<br />
import javax.persistence.Id;<br />
import javax.persistence.OneToMany;<br />
import javax.persistence.Table;</p>
<p>/**<br />
 * Category generated by hbm2java<br />
 */<br />
@Entity<br />
@Table(name = &#8220;category&#8221;, schema=&#8221;public&#8221;)<br />
public class Category implements java.io.Serializable {</p>
<p>	private Integer categoryId;<br />
	private String name;<br />
	private String desc;<br />
	private Set stockCategories = new HashSet(0);</p>
<p>	public Category() {<br />
	}</p>
<p>	public Category(String name, String desc) {<br />
		this.name = name;<br />
		this.desc = desc;<br />
	}</p>
<p>	public Category(String name, String desc, Set stockCategories) {<br />
		this.name = name;<br />
		this.desc = desc;<br />
		this.stockCategories = stockCategories;<br />
	}</p>
<p>	@Id<br />
	//@GeneratedValue(strategy = IDENTITY)<br />
	@Column(name = &#8220;category_id&#8221;, unique = true, nullable = false)<br />
	public Integer getCategoryId() {<br />
		return this.categoryId;<br />
	}</p>
<p>	public void setCategoryId(Integer categoryId) {<br />
		this.categoryId = categoryId;<br />
	}</p>
<p>	@Column(name = &#8220;name&#8221;, nullable = false, length = 20)<br />
	public String getName() {<br />
		return this.name;<br />
	}</p>
<p>	public void setName(String name) {<br />
		this.name = name;<br />
	}</p>
<p>	@Column(name = &#8220;\&#8221;desc\&#8221;", nullable = false)<br />
	public String getDesc() {<br />
		return this.desc;<br />
	}</p>
<p>	public void setDesc(String desc) {<br />
		this.desc = desc;<br />
	}</p>
<p>	@OneToMany(fetch = FetchType.LAZY, mappedBy = &#8220;category&#8221;)<br />
	public Set getStockCategories() {<br />
		return this.stockCategories;<br />
	}</p>
<p>	public void setStockCategories(Set stockCategories) {<br />
		this.stockCategories = stockCategories;<br />
	}</p>
<p>}</p>
<p>And The Main Class</p>
<p> public static void main( String[] args )<br />
    {<br />
        System.out.println(&#8220;Maven + Hibernate Many-to-many example + MySQL&#8221;);<br />
        Session session = HibernateUtil.getSessionFactory().openSession();</p>
<p>        session.beginTransaction();</p>
<p>        Stock stock = new Stock();</p>
<p>        stock.setStockId(11);</p>
<p>        stock.setStockCode(&#8220;4715&#8243;);<br />
        stock.setStockName(&#8220;GENM&#8221;);</p>
<p>        Category category = new Category();</p>
<p>        category.setCategoryId(2);<br />
        category.setName(&#8220;ENTERTAINMENT&#8221;);<br />
        category.setDesc(&#8220;resort world&#8221;);</p>
<p>        session.save(stock);<br />
        session.save(category);</p>
<p>        StockCategory stockCategory = new StockCategory(stock, category);<br />
        stockCategory.setStockCategoryId(3);<br />
        session.save(stockCategory);</p>
<p>        session.getTransaction().commit();</p>
<p>    }</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bibekjyoti.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bibekjyoti.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bibekjyoti.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bibekjyoti.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bibekjyoti.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bibekjyoti.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bibekjyoti.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bibekjyoti.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bibekjyoti.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bibekjyoti.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bibekjyoti.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bibekjyoti.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bibekjyoti.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bibekjyoti.wordpress.com/21/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bibekjyoti.wordpress.com&amp;blog=10625007&amp;post=21&amp;subd=bibekjyoti&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bibekjyoti.wordpress.com/2010/04/30/many-to-many/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/223887f3e92c5dd522c8e151b15ace77?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">bibekjyoti</media:title>
		</media:content>
	</item>
		<item>
		<title>One To Many Hibernate</title>
		<link>http://bibekjyoti.wordpress.com/2010/04/29/one-to-many-hibernate/</link>
		<comments>http://bibekjyoti.wordpress.com/2010/04/29/one-to-many-hibernate/#comments</comments>
		<pubDate>Thu, 29 Apr 2010 11:48:05 +0000</pubDate>
		<dc:creator>bibekjyoti</dc:creator>
				<category><![CDATA[Hibernate]]></category>

		<guid isPermaLink="false">http://bibekjyoti.wordpress.com/?p=17</guid>
		<description><![CDATA[Employee Table CREATE TABLE &#8220;public&#8221;.&#8221;employee&#8221; ( &#8220;employee_id&#8221; INTEGER NOT NULL, &#8220;employee_name&#8221; VARCHAR, CONSTRAINT &#8220;employee_pkey&#8221; PRIMARY KEY(&#8220;employee_id&#8221;) ) Employee Transaction Table CREATE TABLE &#8220;public&#8221;.&#8221;employeetransaction&#8221; ( &#8220;emp_trans_id&#8221; INTEGER NOT NULL, &#8220;emp_id&#8221; INTEGER, &#8220;transactioncode&#8221; VARCHAR(27), CONSTRAINT &#8220;employeetransaction_pkey&#8221; PRIMARY KEY(&#8220;emp_trans_id&#8221;), CONSTRAINT &#8220;employeetransaction_fk&#8221; FOREIGN KEY (&#8220;emp_id&#8221;) REFERENCES &#8220;public&#8221;.&#8221;employee&#8221;(&#8220;employee_id&#8221;) ) Employee Class package hibent; // Generated Apr 23, 2010 5:12:05 PM [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bibekjyoti.wordpress.com&amp;blog=10625007&amp;post=17&amp;subd=bibekjyoti&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>Employee Table</strong></p>
<p> CREATE TABLE &#8220;public&#8221;.&#8221;employee&#8221; (<br />
  &#8220;employee_id&#8221; INTEGER NOT NULL,<br />
  &#8220;employee_name&#8221; VARCHAR,<br />
  CONSTRAINT &#8220;employee_pkey&#8221; PRIMARY KEY(&#8220;employee_id&#8221;)<br />
)</p>
<p><strong>Employee Transaction Table</strong></p>
<p>CREATE TABLE &#8220;public&#8221;.&#8221;employeetransaction&#8221; (<br />
  &#8220;emp_trans_id&#8221; INTEGER NOT NULL,<br />
  &#8220;emp_id&#8221; INTEGER,<br />
  &#8220;transactioncode&#8221; VARCHAR(27),<br />
  CONSTRAINT &#8220;employeetransaction_pkey&#8221; PRIMARY KEY(&#8220;emp_trans_id&#8221;),<br />
  CONSTRAINT &#8220;employeetransaction_fk&#8221; FOREIGN KEY (&#8220;emp_id&#8221;)<br />
    REFERENCES &#8220;public&#8221;.&#8221;employee&#8221;(&#8220;employee_id&#8221;)<br />
)</p>
<p><strong>Employee Class</strong></p>
<p><code>package hibent;<br />
// Generated Apr 23, 2010 5:12:05 PM by Hibernate Tools 3.2.1.GA</p>
<p>import java.util.HashSet;<br />
import java.util.Set;<br />
import javax.persistence.CascadeType;<br />
import javax.persistence.Column;<br />
import javax.persistence.Entity;<br />
import javax.persistence.FetchType;<br />
import javax.persistence.Id;<br />
import javax.persistence.OneToMany;<br />
import javax.persistence.Table;</p>
<p>/**<br />
 * Employee generated by hbm2java<br />
 */<br />
@Entity<br />
@Table(name="employee"<br />
    ,schema="public"<br />
)<br />
public class Employee  implements java.io.Serializable {</p>
<p>     private int employeeId;<br />
     private String employeeName;<br />
     private Set employeetransactions = new HashSet(0);</p>
<p>    public Employee() {<br />
    }</p>
<p>    public Employee(int employeeId) {<br />
        this.employeeId = employeeId;<br />
    }<br />
    public Employee(int employeeId, String employeeName, Set employeetransactions) {<br />
       this.employeeId = employeeId;<br />
       this.employeeName = employeeName;<br />
       this.employeetransactions = employeetransactions;<br />
    }</p>
<p>     @Id </p>
<p>    @Column(name="employee_id")<br />
    public int getEmployeeId() {<br />
        return this.employeeId;<br />
    }</p>
<p>    public void setEmployeeId(int employeeId) {<br />
        this.employeeId = employeeId;<br />
    }</p>
<p>    @Column(name="employee_name")<br />
    public String getEmployeeName() {<br />
        return this.employeeName;<br />
    }</p>
<p>    public void setEmployeeName(String employeeName) {<br />
        this.employeeName = employeeName;<br />
    }</p>
<p>@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY, mappedBy="employee")<br />
    public Set getEmployeetransactions() {<br />
        return this.employeetransactions;<br />
    }</p>
<p>    public void setEmployeetransactions(Set employeetransactions) {<br />
        this.employeetransactions = employeetransactions;<br />
    }</p>
<p>}</code></p>
<p><code><br />
<strong>Employeetransaction Class</strong></p>
<p>import javax.persistence.CascadeType;<br />
import javax.persistence.Column;<br />
import javax.persistence.Entity;<br />
import javax.persistence.FetchType;<br />
import javax.persistence.Id;<br />
import javax.persistence.JoinColumn;<br />
import javax.persistence.ManyToOne;<br />
import javax.persistence.Table;</p>
<p>/**<br />
 * Employeetransaction generated by hbm2java<br />
 */<br />
@Entity<br />
@Table(name="employeetransaction"<br />
    ,schema="public"<br />
)<br />
public class Employeetransaction  implements java.io.Serializable {</p>
<p>     /**<br />
	 *<br />
	 */<br />
	private static final long serialVersionUID = 1L;<br />
	private int empTransId;<br />
     private Employee employee;<br />
     private String transactionCode;</p>
<p>	public Employeetransaction() {<br />
    }</p>
<p>    public Employeetransaction(int empTransId) {<br />
        this.empTransId = empTransId;<br />
    }<br />
   public Employeetransaction(int empTransId,  String transactionCode,Employee employee) {<br />
       this.empTransId = empTransId;<br />
       this.employee = employee;<br />
       this.transactionCode = transactionCode;<br />
    }</p>
<p>   public Employeetransaction(String transactionCode,Employee employee) {<br />
       this.employee = employee;<br />
       this.transactionCode = transactionCode;<br />
    }</p>
<p>     @Id </p>
<p>    @Column(name="emp_trans_id", unique=true, nullable=false)<br />
    public int getEmpTransId() {<br />
        return this.empTransId;<br />
    }</p>
<p>    public void setEmpTransId(int empTransId) {<br />
        this.empTransId = empTransId;<br />
    }</p>
<p>    @Column(name="transactioncode")<br />
    public String getTransactionCode() {<br />
        return this.transactionCode;<br />
    }</p>
<p>    public void setTransactionCode(String transactionCode) {<br />
        this.transactionCode = transactionCode;<br />
    }</p>
<p>   @ManyToOne(fetch = FetchType.LAZY)<br />
    @JoinColumn(name="emp_id", nullable = false)<br />
    public Employee getEmployee() {<br />
        return this.employee;<br />
    }</p>
<p>    public void setEmployee(Employee employee) {<br />
        this.employee = employee;<br />
    }</p>
<p>}<br />
</code></p>
<p>And The Main Function</p>
<p>Session session = HibernateUtil.getSessionFactory().openSession();<br />
		Transaction transaction = null;<br />
		try {<br />
			transaction = session.beginTransaction();</p>
<p>			Employee emp = new Employee();</p>
<p>			emp.setEmployeeId(new Integer(8));<br />
			emp.setEmployeeName(employeeName);</p>
<p>			Employeetransaction emptr = new Employeetransaction();</p>
<p>			emptr.setEmpTransId(new Integer(11));<br />
			emptr.setTransactionCode(new String (&#8220;XYZ&#8221;));<br />
			emptr.setEmployee(emp);</p>
<p>			emp.getEmployeetransactions().add(emptr);</p>
<p>			Employeetransaction emptr1 = new Employeetransaction();</p>
<p>			emptr1.setEmpTransId(new Integer(12));<br />
			emptr1.setTransactionCode(new String (&#8220;ABC&#8221;));<br />
			emptr1.setEmployee(emp);</p>
<p>			emp.getEmployeetransactions().add(emptr1);</p>
<p>			session.save(emp);<br />
			session.save(emptr);</p>
<p>			transaction.commit();<br />
		} catch (HibernateException e) {<br />
			transaction.rollback();<br />
			e.printStackTrace();<br />
		} finally {<br />
			session.close();<br />
		}</p>
<p>Id Can be auto generated.. it is simple also</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bibekjyoti.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bibekjyoti.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bibekjyoti.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bibekjyoti.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bibekjyoti.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bibekjyoti.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bibekjyoti.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bibekjyoti.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bibekjyoti.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bibekjyoti.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bibekjyoti.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bibekjyoti.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bibekjyoti.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bibekjyoti.wordpress.com/17/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bibekjyoti.wordpress.com&amp;blog=10625007&amp;post=17&amp;subd=bibekjyoti&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bibekjyoti.wordpress.com/2010/04/29/one-to-many-hibernate/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/223887f3e92c5dd522c8e151b15ace77?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">bibekjyoti</media:title>
		</media:content>
	</item>
		<item>
		<title>Hibernate Association Mapping -One to One Unidirectional Part 1</title>
		<link>http://bibekjyoti.wordpress.com/2010/03/30/hibernate-association-mapping-one-to-one-unidirectional-part-1/</link>
		<comments>http://bibekjyoti.wordpress.com/2010/03/30/hibernate-association-mapping-one-to-one-unidirectional-part-1/#comments</comments>
		<pubDate>Tue, 30 Mar 2010 10:32:04 +0000</pubDate>
		<dc:creator>bibekjyoti</dc:creator>
				<category><![CDATA[Hibernate]]></category>

		<guid isPermaLink="false">http://bibekjyoti.wordpress.com/?p=14</guid>
		<description><![CDATA[Person.nbm.xml &#60;hibernate-mapping package=&#8220;com.associationmapping&#8221; &#62; &#60;class name=&#8220;Person&#8221; table=&#8220;person&#8221; schema=&#8220;public&#8221;&#62; &#60;id name=&#8220;id&#8221; type=&#8220;java.lang.String&#8221;&#62; &#60;column name=&#8220;id&#8221; /&#62; &#60;generator class=&#8220;assigned&#8221; /&#62; &#60;/id&#62; &#60;property name=&#8220;firstname&#8221; type=&#8220;java.lang.String&#8221;&#62; &#60;column name=&#8220;firstname&#8221; length=&#8220;10&#8243; /&#62; &#60;/property&#62; &#60;property name=&#8220;lastname&#8221; type=&#8220;java.lang.String&#8221;&#62; &#60;column name=&#8220;lastname&#8221; /&#62; &#60;/property&#62; &#60;one-to-one name=&#8220;phone&#8221; class=&#8220;Phone&#8221; property-ref=&#8220;personid&#8221; fetch=&#8220;select&#8221; cascade=&#8220;all&#8221;/&#62; &#60;/class&#62; &#60;/hibernate-mapping&#62; package com.associationmapping; public class Person { private java.lang.String id; private String firstname; private String [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bibekjyoti.wordpress.com&amp;blog=10625007&amp;post=14&amp;subd=bibekjyoti&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>Person.nbm.xml</strong></p>
<p>&lt;hibernate-mapping package=<em>&#8220;com.associationmapping&#8221;</em> &gt;</p>
<p>&lt;class name=<em>&#8220;Person&#8221;</em> table=<em>&#8220;person&#8221;</em> schema=<em>&#8220;public&#8221;</em>&gt;</p>
<p>&lt;id name=<em>&#8220;id&#8221;</em> type=<em>&#8220;java.lang.String&#8221;</em>&gt;</p>
<p>&lt;column name=<em>&#8220;id&#8221;</em> /&gt;</p>
<p>&lt;generator class=<em>&#8220;assigned&#8221;</em> /&gt;</p>
<p>&lt;/id&gt;</p>
<p>&lt;property name=<em>&#8220;firstname&#8221;</em> type=<em>&#8220;java.lang.String&#8221;</em>&gt;</p>
<p>&lt;column name=<em>&#8220;firstname&#8221;</em> length=<em>&#8220;10&#8243;</em> /&gt;</p>
<p>&lt;/property&gt;</p>
<p>&lt;property name=<em>&#8220;lastname&#8221;</em> type=<em>&#8220;java.lang.String&#8221;</em>&gt;</p>
<p>&lt;column name=<em>&#8220;lastname&#8221;</em> /&gt;</p>
<p>&lt;/property&gt;</p>
<p><strong><em>&lt;one-to-one name=</em></strong><strong><em>&#8220;phone&#8221;</em></strong><strong><em> class=</em></strong><strong><em>&#8220;Phone&#8221;</em></strong><strong><em> property-ref=</em></strong><strong><em>&#8220;personid&#8221;</em></strong><strong><em> fetch=</em></strong><strong><em>&#8220;select&#8221;</em></strong></p>
<p><strong><em>cascade=</em></strong><strong><em>&#8220;all&#8221;</em></strong><strong><em>/&gt;</em></strong></p>
<p>&lt;/class&gt;</p>
<p>&lt;/hibernate-mapping&gt;</p>
<p><em>package com.associationmapping;</em></p>
<p>public class Person {</p>
<p>private java.lang.String id;</p>
<p>private String firstname;</p>
<p>private String lastname;</p>
<p><strong>Phone phone;  &lt;&#8211; Unidirectional Association</strong></p>
<p>//Getter  Setter</p>
<p><strong>public void setPhone(Phone phone) {</strong></p>
<p><strong>phone.setPersonid(this.id);</strong></p>
<p><strong>this.phone = phone;</strong></p>
<p><strong>}</strong></p>
<p>}</p>
<p>Phone.hbm.xml</p>
<p>&lt;hibernate-mapping package=<em>&#8220;com.associationmapping&#8221;</em> &gt;</p>
<p>&lt;class name=<em>&#8220;Phone&#8221;</em> table=<em>&#8220;phone&#8221;</em> schema=<em>&#8220;public&#8221;</em>&gt;</p>
<p>&lt;id name=<em>&#8220;id&#8221;</em> type=<em>&#8220;java.lang.String&#8221;</em>&gt;</p>
<p>&lt;column name=<em>&#8220;id&#8221;</em> /&gt;</p>
<p>&lt;generator class=<em>&#8220;assigned&#8221;</em> /&gt;</p>
<p>&lt;/id&gt;</p>
<p>&lt;property name=<em>&#8220;contactnumber&#8221;</em> type=<em>&#8220;java.lang.String&#8221;</em>&gt;</p>
<p>&lt;column name=<em>&#8220;contactnumber&#8221;</em> length=<em>&#8220;10&#8243;</em> /&gt;</p>
<p>&lt;/property&gt;</p>
<p>&lt;property name=<em>&#8220;phonetype&#8221;</em> type=<em>&#8220;java.lang.String&#8221;</em>&gt;</p>
<p>&lt;column name=<em>&#8220;phonetype&#8221;</em> /&gt;</p>
<p>&lt;/property&gt;</p>
<p>&lt;property name=<em>&#8220;personid&#8221;</em> type=<em>&#8220;java.lang.String&#8221;</em>&gt;</p>
<p>&lt;column name=<em>&#8220;personid&#8221;</em> /&gt;</p>
<p>&lt;/property&gt;</p>
<p>&lt;/class&gt;</p>
<p>&lt;/hibernate-mapping&gt;</p>
<p><strong><span style="font-weight:normal;">public class</span> </strong>Phone {</p>
<p>private String id;</p>
<p>private String contactnumber;</p>
<p>private String phonetype;</p>
<p>private String personid;</p>
<p>// Getter Setter</p>
<p><strong>public</strong> <strong>static</strong> <strong>void</strong> main(String[] args) {</p>
<p>SessionFactory factory =</p>
<p><strong>new</strong> Configuration().configure().buildSessionFactory();</p>
<p>Session session = factory.openSession();</p>
<p><strong>try</strong> {</p>
<p>Person p = <strong>new</strong> Person();</p>
<p>p.setId(&#8220;124&#8243;);</p>
<p>p.setFirstname(&#8220;Clark&#8221;);</p>
<p>p.setLastname(&#8220;Kent&#8221;);</p>
<p>Phone phone = <strong>new</strong> Phone();</p>
<p>phone.setId(&#8220;450&#8243;);</p>
<p>phone.setContactnumber(&#8220;9971045&#8243;);</p>
<p>phone.setPhonetype(&#8220;CDMA&#8221;);</p>
<p>p.setPhone(phone);</p>
<p>Transaction tx = session.beginTransaction();</p>
<p>session.save(p);</p>
<p>tx.commit();</p>
<p>Person <span style="text-decoration:underline;">p1</span> = (Person)session.load(Person.<strong>class</strong>,&#8221;124&#8243;);</p>
<p>Phone f =(Phone) session.load(Phone.<strong>class</strong>, &#8220;451&#8243;);</p>
<p>System.out.<span style="text-decoration:underline;">println</span>(p1.getPhone().getId());  &lt;&#8211; Phone Data Can be retrived from Person</p>
<p>System.<em>out</em>.println(f.getPersonid());</p>
<p>} <strong>catch</strong>(Exception e) {</p>
<p>e.printStackTrace();</p>
<p>}</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bibekjyoti.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bibekjyoti.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bibekjyoti.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bibekjyoti.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bibekjyoti.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bibekjyoti.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bibekjyoti.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bibekjyoti.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bibekjyoti.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bibekjyoti.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bibekjyoti.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bibekjyoti.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bibekjyoti.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bibekjyoti.wordpress.com/14/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bibekjyoti.wordpress.com&amp;blog=10625007&amp;post=14&amp;subd=bibekjyoti&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bibekjyoti.wordpress.com/2010/03/30/hibernate-association-mapping-one-to-one-unidirectional-part-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/223887f3e92c5dd522c8e151b15ace77?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">bibekjyoti</media:title>
		</media:content>
	</item>
		<item>
		<title>Flex-BlazeDS-Java Remoting -Part -1</title>
		<link>http://bibekjyoti.wordpress.com/2009/12/26/8/</link>
		<comments>http://bibekjyoti.wordpress.com/2009/12/26/8/#comments</comments>
		<pubDate>Sat, 26 Dec 2009 15:42:50 +0000</pubDate>
		<dc:creator>bibekjyoti</dc:creator>
				<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://bibekjyoti.wordpress.com/?p=8</guid>
		<description><![CDATA[I am now Posting a Simple Application about How to Use  BlazeDS remoting with MyEclipse along with JBoss.You may found some other articles..but here i am telling some of the key things which i have not found in any other site. 1) Create a MyEclipse web project  flexweb ;let the position is (c:\workspace\flexweb). 2) copy [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bibekjyoti.wordpress.com&amp;blog=10625007&amp;post=8&amp;subd=bibekjyoti&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I am now Posting a Simple Application about How to Use  <strong>BlazeDS </strong><strong>remoting </strong>with M<strong>yEclipse </strong>along with<strong> JBoss.</strong>You may found some other articles..but here i am telling some of the key things which i have not found in any other site.</p>
<p>1) Create a MyEclipse web project  flexweb ;let the position is (c:\workspace\flexweb).</p>
<p>2) copy the blazeds.war files WEB-INF directory inside the webroot directory of flexweb i:e replace)</p>
<p>3) make the java file under src directory inside flexweb.</p>
<p>write java class</p>
<p>package com</p>
<p>import java.util.ArrayList;</p>
<p>import java.util.List;</p>
<p>import java.util.Random;</p>
<p>import flex.messaging.io.ArrayCollection;</p>
<p>public class BlazeDsService {</p>
<p><span style="white-space:pre;"> </span>public BlazeDsService(){</p>
<p><span style="white-space:pre;"> </span>}</p>
<p><span style="white-space:pre;"> </span>public List&lt;String&gt; callMe() {</p>
<p><span style="white-space:pre;"> </span>System.out.println(&#8220;I am called!&#8221;);</p>
<p><span style="white-space:pre;"> </span>List&lt;String&gt; result = new ArrayList&lt;String&gt;();</p>
<p><span style="white-space:pre;"> </span>result.add(&#8220;Michael M Jackson&#8221;);</p>
<p><span style="white-space:pre;"> </span>result.add(&#8220;Beatles&#8221;);</p>
<p><span style="white-space:pre;"> </span>result.add(&#8220;Tina Turner&#8221;);</p>
<p><span style="white-space:pre;"> </span>return result;</p>
<p><span style="white-space:pre;"> </span>}</p>
<p>}</p>
<p>4) In the service-config.xml  uncomment</p>
<p>login-command.messaging.security.TomcatLoginCommand server=&#8221;JBoss&#8221;</p>
<p>5) In remote-config.xml</p>
<p>add the following</p>
<div id="_mcePaste">&lt;destination id=&#8221;remoteService&#8221; &gt;</div>
<div id="_mcePaste">&lt;properties&gt;</div>
<div id="_mcePaste">&lt;source&gt;com.codeofdoom.BlazeDsService&lt;/source&gt;</div>
<div id="_mcePaste">&lt;scope&gt;application&lt;/scope&gt;</div>
<div id="_mcePaste">&lt;/properties&gt;</div>
<div id="_mcePaste">&lt;/destination&gt;</div>
<p>&lt;destination id=&#8221;remoteService&#8221; &gt;   &lt;properties&gt;        &lt;source&gt;com.BlazeDsService&lt;/source&gt;        &lt;scope&gt;application&lt;/scope&gt;   &lt;/properties&gt;&lt;/destination&gt;</p>
<p>7)  deploy the flexweb. run the jboss server</p>
<p>8) create a new project in flexbuilder 3</p>
<p>9) make it web application .</p>
<p>10) In the</p>
<p>root folder (c:\workspace\flexweb\webroot).</p>
<p>root url  http://localhost:8080/flexWeb/</p>
<p>context root /flexWeb</p>
<p>11)  in the mxml file</p>
<p>&lt;mx:RemoteObject id=&#8221;rs&#8221; result=&#8221;result(event)&#8221; destination=&#8221;remoteService&#8221;/&gt;</p>
<p>i will share a complete code later.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bibekjyoti.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bibekjyoti.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bibekjyoti.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bibekjyoti.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bibekjyoti.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bibekjyoti.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bibekjyoti.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bibekjyoti.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bibekjyoti.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bibekjyoti.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bibekjyoti.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bibekjyoti.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bibekjyoti.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bibekjyoti.wordpress.com/8/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bibekjyoti.wordpress.com&amp;blog=10625007&amp;post=8&amp;subd=bibekjyoti&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bibekjyoti.wordpress.com/2009/12/26/8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/223887f3e92c5dd522c8e151b15ace77?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">bibekjyoti</media:title>
		</media:content>
	</item>
		<item>
		<title>Using Log4j</title>
		<link>http://bibekjyoti.wordpress.com/2009/12/17/using-log4j/</link>
		<comments>http://bibekjyoti.wordpress.com/2009/12/17/using-log4j/#comments</comments>
		<pubDate>Thu, 17 Dec 2009 09:21:42 +0000</pubDate>
		<dc:creator>bibekjyoti</dc:creator>
				<category><![CDATA[Log4j]]></category>

		<guid isPermaLink="false">http://bibekjyoti.wordpress.com/?p=3</guid>
		<description><![CDATA[In log4j we have two type of appender . DailyRollingFileAppender and RollingFileAppender which works on Daiky basis or hourly basis.In the log4j properties file we have either Log4j properties file log4j.rootCategory=INFO,FILE log4j.rootLogger=DEBUG,FILE : : #log4j.appender.FILE=org.apache.log4j.DailyRollingFileAppender #log4j.appender.FILE=org.apache.log4j.RollingFileAppender : : one of them.Sometimes we nedd file sizewise as well as date wise to log that.In that case [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bibekjyoti.wordpress.com&amp;blog=10625007&amp;post=3&amp;subd=bibekjyoti&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>In log4j we have two type of appender . DailyRollingFileAppender and RollingFileAppender which works on Daiky basis or hourly basis.In the log4j properties file we have either</p>
<p>Log4j properties file</p>
<p>log4j.rootCategory=INFO,FILE<br />
log4j.rootLogger=DEBUG,FILE</p>
<p>:</p>
<p>:</p>
<p>#log4j.appender.FILE=org.apache.log4j.DailyRollingFileAppender<br />
#log4j.appender.FILE=org.apache.log4j.RollingFileAppender</p>
<p>:</p>
<p>:</p>
<p>one of them.Sometimes we nedd file sizewise as well as date wise to log that.In that case we have to write our own custom appender.Here is a simple java file</p>
<p>package com.bibek;</p>
<p>import java.io.IOException;<br />
import java.io.Writer;<br />
import java.io.File;</p>
<p>import com.bibek.FileAppender;<br />
import org.apache.log4j.Layout;<br />
import org.apache.log4j.helpers.OptionConverter;<br />
import org.apache.log4j.helpers.LogLog;<br />
import org.apache.log4j.helpers.CountingQuietWriter;<br />
import org.apache.log4j.spi.LoggingEvent;<br />
import java.io.IOException;<br />
import java.io.File;<br />
import java.text.DateFormat;<br />
import java.text.SimpleDateFormat;<br />
import java.util.Date;<br />
import java.util.GregorianCalendar;<br />
import java.util.Calendar;<br />
import java.util.TimeZone;<br />
import java.util.Locale;<br />
/**<br />
bibekfileappender extends FileAppender to backup the log files when<br />
they reach a certain size.</p>
<p>*/<br />
public class bibekfileappender extends FileAppender {</p>
<p>/**<br />
The default maximum file size is 10MB.<br />
*/<br />
protected long maxFileSize = 10*1024*1024;</p>
<p>/**<br />
There is one backup file by default.<br />
*/<br />
protected int  maxBackupIndex  = 1;</p>
<p>private long nextRollover = 0;</p>
<p>/**<br />
The default constructor simply calls its {@link<br />
FileAppender#FileAppender parents constructor}.  */<br />
public<br />
bibekfileappender() {<br />
super();<br />
}</p>
<p>/**<br />
Instantiate a RollingFileAppender and open the file designated by<br />
&lt;code&gt;filename&lt;/code&gt;. The opened filename will become the ouput<br />
destination for this appender.</p>
<p>&lt;p&gt;If the &lt;code&gt;append&lt;/code&gt; parameter is true, the file will be<br />
appended to. Otherwise, the file desginated by<br />
&lt;code&gt;filename&lt;/code&gt; will be truncated before being opened.<br />
*/<br />
public<br />
bibekfileappender(Layout layout, String filename, boolean append)<br />
throws IOException {<br />
super(layout, filename, append);<br />
}</p>
<p>/**<br />
Instantiate a FileAppender and open the file designated by<br />
&lt;code&gt;filename&lt;/code&gt;. The opened filename will become the output<br />
destination for this appender.</p>
<p>&lt;p&gt;The file will be appended to.  */<br />
public<br />
bibekfileappender(Layout layout, String filename) throws IOException {<br />
super(layout, filename);<br />
}</p>
<p>/**<br />
Returns the value of the &lt;b&gt;MaxBackupIndex&lt;/b&gt; option.<br />
*/<br />
public<br />
int getMaxBackupIndex() {<br />
return maxBackupIndex;<br />
}</p>
<p>/**<br />
Get the maximum size that the output file is allowed to reach<br />
before being rolled over to backup files.</p>
<p>@since 1.1<br />
*/<br />
public<br />
long getMaximumFileSize() {<br />
return maxFileSize;<br />
}</p>
<p>/**<br />
Implements the usual roll over behaviour.</p>
<p>&lt;p&gt;If &lt;code&gt;MaxBackupIndex&lt;/code&gt; is positive, then files<br />
{&lt;code&gt;File.1&lt;/code&gt;, &#8230;, &lt;code&gt;File.MaxBackupIndex -1&lt;/code&gt;}<br />
are renamed to {&lt;code&gt;File.2&lt;/code&gt;, &#8230;,<br />
&lt;code&gt;File.MaxBackupIndex&lt;/code&gt;}. Moreover, &lt;code&gt;File&lt;/code&gt; is<br />
renamed &lt;code&gt;File.1&lt;/code&gt; and closed. A new &lt;code&gt;File&lt;/code&gt; is<br />
created to receive further log output.</p>
<p>&lt;p&gt;If &lt;code&gt;MaxBackupIndex&lt;/code&gt; is equal to zero, then the<br />
&lt;code&gt;File&lt;/code&gt; is truncated with no backup files created.</p>
<p>*/</p>
<p>public // synchronization not necessary since doAppend is alreasy synched<br />
void rollOver() {<br />
File target;<br />
File file;<br />
//    System.out.println(&#8220;rollOver&#8221;);<br />
if (qw != null) {<br />
long size = ((CountingQuietWriter) qw).getCount();<br />
LogLog.debug(&#8220;rolling over count=&#8221; + size);<br />
//   if operation fails, do not roll again until<br />
//      maxFileSize more bytes are written<br />
nextRollover = size + maxFileSize;<br />
}<br />
LogLog.debug(&#8220;maxBackupIndex=&#8221;+maxBackupIndex);<br />
DateFormat dateFormat = new SimpleDateFormat (&#8220;yyyy-MM-dd&#8221;);<br />
java.util.Date date = new java.util.Date ();<br />
String dateStr = dateFormat.format (date);<br />
// fileName = fileName.trim()+dateStr.trim();<br />
boolean renameSucceeded = true;<br />
// If maxBackups &lt;= 0, then there is no file renaming to be done.<br />
if(maxBackupIndex &gt; 0) {</p>
<p>// Delete the oldest file, to keep Windows happy.</p>
<p>//   System.out.println(&#8220;Filename is  &#8220;+fileName + &#8216;.&#8217; + maxBackupIndex);<br />
file = new File(fileName+dateStr.trim()+ &#8216;.&#8217; + maxBackupIndex);<br />
if (file.exists())<br />
renameSucceeded = file.delete();</p>
<p>// Map {(maxBackupIndex &#8211; 1), &#8230;, 2, 1} to {maxBackupIndex, &#8230;, 3, 2}<br />
for (int i = maxBackupIndex &#8211; 1; i &gt;= 1 &amp;&amp; renameSucceeded; i&#8211;) {<br />
file = new File(fileName+dateStr.trim() + &#8220;.&#8221; + i);<br />
//System.out.println(&#8220;Inside for loop  &#8220;+fileName + &#8220;.&#8221; + i);<br />
if (file.exists()) {<br />
//System.out.println(&#8220;File exist&#8221;);<br />
target = new File(fileName+dateStr.trim()+ &#8216;.&#8217; + (i + 1));<br />
LogLog.debug(&#8220;Renaming file &#8221; + file + &#8221; to &#8221; + target);<br />
//System.out.println(&#8220;Renaming file &#8221; + file + &#8221; to &#8221; + target);<br />
renameSucceeded = file.renameTo(target);<br />
}<br />
}</p>
<p>if(renameSucceeded) {<br />
// Rename fileName to fileName.1<br />
target = new File(fileName+dateStr.trim()+ &#8220;.&#8221; + 1);</p>
<p>this.closeFile(); // keep windows happy.</p>
<p>file = new File(fileName);<br />
LogLog.debug(&#8220;Renaming file &#8221; + file + &#8221; to &#8221; + target);<br />
renameSucceeded = file.renameTo(target);<br />
//<br />
//   if file rename failed, reopen file with append = true<br />
//<br />
if (!renameSucceeded) {<br />
try {<br />
this.setFile(fileName, true, bufferedIO, bufferSize);<br />
}<br />
catch(IOException e) {<br />
LogLog.error(&#8220;setFile(&#8220;+fileName+&#8221;, true) call failed.&#8221;, e);<br />
}<br />
}<br />
}<br />
}</p>
<p>//<br />
//   if all renames were successful, then<br />
//<br />
if (renameSucceeded) {<br />
try {<br />
// This will also close the file. This is OK since multiple<br />
// close operations are safe.<br />
//System.out.println(fileName.trim()+dateStr.trim());<br />
// fileName = fileName.trim()+dateStr.trim();<br />
this.setFile(fileName, false, bufferedIO, bufferSize);<br />
nextRollover = 0;<br />
}<br />
catch(IOException e) {<br />
LogLog.error(&#8220;setFile(&#8220;+fileName+&#8221;, false) call failed.&#8221;, e);<br />
}<br />
}<br />
}</p>
<p>public<br />
synchronized<br />
void setFile(String fileName, boolean append, boolean bufferedIO, int bufferSize)<br />
throws IOException {<br />
super.setFile(fileName, append, this.bufferedIO, this.bufferSize);<br />
if(append) {<br />
File f = new File(fileName);<br />
((CountingQuietWriter) qw).setCount(f.length());<br />
}<br />
}</p>
<p>/**<br />
Set the maximum number of backup files to keep around.</p>
<p>&lt;p&gt;The &lt;b&gt;MaxBackupIndex&lt;/b&gt; option determines how many backup<br />
files are kept before the oldest is erased. This option takes<br />
a positive integer value. If set to zero, then there will be no<br />
backup files and the log file will be truncated when it reaches<br />
&lt;code&gt;MaxFileSize&lt;/code&gt;.<br />
*/<br />
public<br />
void setMaxBackupIndex(int maxBackups) {<br />
this.maxBackupIndex = maxBackups;<br />
}</p>
<p>/**<br />
Set the maximum size that the output file is allowed to reach<br />
before being rolled over to backup files.</p>
<p>&lt;p&gt;This method is equivalent to {@link #setMaxFileSize} except<br />
that it is required for differentiating the setter taking a<br />
&lt;code&gt;long&lt;/code&gt; argument from the setter taking a<br />
&lt;code&gt;String&lt;/code&gt; argument by the JavaBeans {@link<br />
java.beans.Introspector Introspector}.</p>
<p>@see #setMaxFileSize(String)<br />
*/<br />
public<br />
void setMaximumFileSize(long maxFileSize) {<br />
this.maxFileSize = maxFileSize;<br />
}</p>
<p>/**<br />
Set the maximum size that the output file is allowed to reach<br />
before being rolled over to backup files.</p>
<p>&lt;p&gt;In configuration files, the &lt;b&gt;MaxFileSize&lt;/b&gt; option takes an<br />
long integer in the range 0 &#8211; 2^63. You can specify the value<br />
with the suffixes &#8220;KB&#8221;, &#8220;MB&#8221; or &#8220;GB&#8221; so that the integer is<br />
interpreted being expressed respectively in kilobytes, megabytes<br />
or gigabytes. For example, the value &#8220;10KB&#8221; will be interpreted<br />
as 10240.<br />
*/<br />
public<br />
void setMaxFileSize(String value) {<br />
maxFileSize = OptionConverter.toFileSize(value, maxFileSize + 1);<br />
}</p>
<p>protected<br />
void setQWForFiles(Writer writer) {<br />
this.qw = new CountingQuietWriter(writer, errorHandler);<br />
}</p>
<p>/**<br />
This method differentiates RollingFileAppender from its super<br />
class.</p>
<p>@since 0.9.0<br />
*/<br />
protected<br />
void subAppend(LoggingEvent event) {<br />
super.subAppend(event);<br />
if(fileName != null &amp;&amp; qw != null) {<br />
long size = ((CountingQuietWriter) qw).getCount();<br />
if (size &gt;= maxFileSize &amp;&amp; size &gt;= nextRollover) {<br />
rollOver();<br />
}<br />
}<br />
}<br />
}</p>
<p>log4j.properties file<br />
log4j.rootCategory=INFO,FILE<br />
log4j.rootLogger=DEBUG,FILE<br />
#log4j.logger.prjTest.jcdTest=INFO,prjTest.jcdTest</p>
<p>#log4j.appender.FILE=org.apache.log4j.DailyRollingFileAppender<br />
#log4j.appender.FILE=org.apache.log4j.RollingFileAppender<br />
#instead of above two i use this one.<br />
log4j.appender.FILE=com.bibek.bibekfileappender<br />
log4j.appender.FILE.File=/home/bibek/log  &#8212; for linux<br />
#log4j.appender.FILE.File=D:\\log &#8212; for windows<br />
log4j.appender.FILE.MaxFileSize=1MB<br />
log4j.appender.FILE.MaxBackupIndex=15<br />
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout<br />
log4j.appender.FILE.layout.ConversionPattern=%d{ISO8601} %-5p [%t] [%c] [%x] %m%n</p>
<p>&#8212;</p>
<p>User can do it in their own ways they want.Cheers</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bibekjyoti.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bibekjyoti.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bibekjyoti.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bibekjyoti.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bibekjyoti.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bibekjyoti.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bibekjyoti.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bibekjyoti.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bibekjyoti.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bibekjyoti.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bibekjyoti.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bibekjyoti.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bibekjyoti.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bibekjyoti.wordpress.com/3/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bibekjyoti.wordpress.com&amp;blog=10625007&amp;post=3&amp;subd=bibekjyoti&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bibekjyoti.wordpress.com/2009/12/17/using-log4j/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/223887f3e92c5dd522c8e151b15ace77?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">bibekjyoti</media:title>
		</media:content>
	</item>
	</channel>
</rss>
