2009年12月6日日曜日

コンテナ管理トランザクションであそぶ - (6/10) -

エンティティBeanを作成する

エンティティBeanを作成します。

Message.java
package com.mydomain.ejb;

import java.io.Serializable;
import javax.persistence.*;

@Entity(name="message")
public class Message implements Serializable
{
    private static final long serialVersionUID = 1L;

    public Message(){}

    @Id
    @GeneratedValue(strategy=GenerationType.SEQUENCE)
    private long id;
    public long getId(){ return this.id; }
    public void setId(long id){ this.id = id; }

    private String text;
    public String getText(){ return this.text; }
    public void setText(String text){ this.text = text; }

    @Column(name="number")
    private int no;
    public int getNo(){ return this.no; }
    public void setNo(int no){ this.no = no; }

    @Column(name="rollback_point")
    private int rollback;
    public int getRollback(){ return this.rollback; }
    public void setRollback(int rollback){ this.rollback = rollback; }

    private String biko;
    public String getBiko(){ return this.biko; }
    public void setBiko(String biko){ this.biko = biko; }
}


エンティティBeanの生成と例外の生成をするユーティリティクラスを作成します。

MessageUtil.java
package com.mydomain.ejb;

public class MessageUtil
{    
    public static Message createMessage(Message message)
    {
        return createMessage(
            message.getText(), message.getNo(), message.getRollback(), message.getBiko());
    }

    public static Message createMessage(String text, int no, int rollback)
    {
        return createMessage(text, no, rollback, "");
    }
    
    public static Message createMessage(String text, int no, int rollback, String biko)
    {
        Message message = new Message();
        message.setText(text);
        message.setNo(no);
        message.setRollback(rollback);
        message.setBiko(biko);
        return message;
    }

    public static void setLogMessage(Message message, Class cls, String method)
    {
        String biko = cls.getSimpleName() + ":" + method + "( )";
        message.setBiko(message.getBiko() + biko);
    }
    
    public static void setNextLogMessage(Message message)
    {
        message.setBiko(message.getBiko() + "=>");
        message.setNo(message.getNo()+1);
    }
    
    public static boolean doRollback(Message message)      
    {
        if(message.getRollback() == message.getNo())
        {
            Object obj = null;
            obj.toString();
        }
        return false;
    }
}
doRollback()メソッド
例外発生の判定をします。
例外はjava.lang.NullPointerExceptionをthrowします。