[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[jfriends-ml 12142] Re: JDK5 + JBoss4.0.3SP1 + JBoss-EJB3(RC3) で EJB3 の手順
高橋(智)です。
EntityBeanを使い倒されている方もいらっしゃるようですし、簡単ついでに、
EntityBeanを使用するコードを記述してみました。(^^)
デプロイして、EJBクライアントを実行すると、RDBMSのログファイルには、
以下のようなSQL文が残されていました。
----------------------------------------------------------------------------
create table OrderTable (Col_Id integer not null, Col_Custname varchar(255),
primary key (Col_Id), unique (Col_Id))
SET AUTOCOMMIT FALSE
INSERT INTO ORDERTABLE VALUES(1,'ken')
COMMIT
----------------------------------------------------------------------------
永続化のDataSource先を指定しようとしたのですが、うまく行かず、デフォルト
のものが勝手に使用されてしまいました。また、EntityBeanのソースコードに色々
なAnnotationが記述されているおかげで、可読性や保守性が損なわれるような気が
するのは私だけでしょうか? (^^;
いずれも配布ディスクリプタ(.xml)で別途指定することができるとは思うのですが、
詳しいことは分かりません。(^^;
=======================================================================
package test;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Column;
import javax.persistence.Id;
//create table OrderTable (Col_Id integer not null, Col_Custname varchar(255),
// primary key (Col_Id), unique (Col_Id))
@Entity
@Table(name="OrderTable")
public class Order implements java.io.Serializable {
private int id;
private String custname;
public Order() {
}
public Order(int id, String custname) {
this.id = id;
this.custname = custname;
}
@Id
@Column(name="Col_Id", unique=true, nullable=false, updatable=false)
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@Column(name="Col_Custname", unique=false, nullable=true, updatable=true)
public String getCustname() {
return custname;
}
public void setCustname(String custname) {
this.custname = custname;
}
}
=======================================================================
=======================================================================
package test;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
@Stateless
public class EchoBean implements EchoRemote
{
@PersistenceContext
private EntityManager manager;
public EchoBean() {
}
public String echo(String msg) {
//SET AUTOCOMMIT FALSE
//INSERT INTO ORDERTABLE VALUES(1,'ken')
//COMMIT
Order order = new Order(1, msg);
manager.persist(order);
return msg;
}
}
=======================================================================
--
高橋智宏