- 追加された行はこの色です。
- 削除された行はこの色です。
// 下階層用テンプレート
#topicpath
----
//ここにコンテンツを記述します。
つぎは[[先ほど作った>Java/Pingアプリケーション/すでに打ったPing情報を格納するテーブルを作る]]テーブル(webdb1.rss)のRowにマッピングされるJavaBeansを作成します。これは様々なツールを作って自動生成することにします。
つぎは[[先ほど作った>Java/Pingアプリケーション/すでに打ったPing情報を格納するテーブルを作る]]テーブル(webdb1.rss)のRowにマッピングされるJavaBeansを作成します。これはEclipse上のGUIツールを作って自動生成することにします。ツールは以前使ってみた[[Hibernate Tools>Hibernate/Hibernate Toolsを使う]]を使います。
一応目的としては、Hibernate Annotation を用いて*.hbm.xmlを使わないでやろうと思います。
手順は、ややこしいですが
-hibernate.cfg.xmlの作成
-consoleの作成
-hibernate.reveng.xml の作成
-Hibernate パースペクティブでソース生成(hibernate.reveng.xmlを使ってhbm.xmlだけ作成)
-hbm.xmlのauto_incrementなどの値を書き換え
-Hibernate パースペクティブでソース生成(hibernate.reveng.xmlを使わないでhbm.xmlをインプットとして
JDK 1.5 Construts
EJB3/JSR-220 annotations
にチェックして作成。
て感じです。生成されたソースは以下の感じ:
package nu.mine.kino.rss.hibernate;
// Generated 2006/02/23 1:10:31 by Hibernate Tools 3.1.0 beta1JBIDERC2
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratorType;
import javax.persistence.Id;
import javax.persistence.Table;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.hibernate.annotations.GenericGenerator;
/**
* Rss generated by hbm2java
*/
@Entity
@Table(name = "rss", catalog = "webdb1")
public class Rss implements java.io.Serializable {
// Fields
private Integer id;
private String title;
private String link;
private Date date;
// Constructors
/** default constructor */
public Rss() {
}
/** minimal constructor */
public Rss(Date date) {
this.date = date;
}
/** full constructor */
public Rss(String title, String link, Date date) {
this.title = title;
this.link = link;
this.date = date;
}
// Property accessors
@GenericGenerator(name = "generator", strategy = "increment", parameters = {})
@Id(generate = GeneratorType.NONE, generator = "generator")
@Column(name = "id", unique = false, nullable = false, insertable = true, updatable = true)
public Integer getId() {
return this.id;
}
public void setId(Integer id) {
this.id = id;
}
@Column(name = "title", unique = false, nullable = true, insertable = true, updatable = true)
public String getTitle() {
return this.title;
}
public void setTitle(String title) {
this.title = title;
}
@Column(name = "link", unique = false, nullable = true, insertable = true, updatable = true, length = 65535)
public String getLink() {
return this.link;
}
public void setLink(String link) {
this.link = link;
}
@Column(name = "date", unique = false, nullable = false, insertable = true, updatable = true, length = 19)
public Date getDate() {
return this.date;
}
public void setDate(Date date) {
this.date = date;
}
// 以下は 追記。
public String toString() {
return new ToStringBuilder(this).append("id", getId()).append("date",
getDate()).append("title", getTitle()).toString();
}
// RSSフィードと比較するためにOverride
// 同じ更新時刻のデータは、同じオブジェクトと見なしている
public boolean equals(Object other) {
if (!(other instanceof Rss))
return false;
Rss castOther = (Rss) other;
// 同じ更新時刻は、同じとみなす。
return new EqualsBuilder()
// .append(this.getTitle(), castOther.getTitle())
.append(this.getDate(), castOther.getDate()).isEquals();
}
public int hashCode() {
return new HashCodeBuilder().append(getId()).toHashCode();
}
}
ちなみに中間で作成されたRss.hbm.xmlは以下の通り:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 2006/02/23 1:00:53 by Hibernate Tools 3.1.0 beta1JBIDERC2 -->
<hibernate-mapping>
<class name="nu.mine.kino.rss.hibernate.Rss" table="rss" catalog="webdb1">
<id name="id" type="integer">
<column name="id" />
<generator class="increment" />
</id>
<property name="title" type="string">
<column name="title" />
</property>
<property name="link" type="string">
<column name="link" length="65535" />
</property>
<property name="date" type="timestamp">
<column name="date" length="19" not-null="true" />
</property>
</class>
</hibernate-mapping>
----
この記事は
#vote(おもしろかった,そうでもない)
-AntのJavaDocタスクでエラーになっちゃうんだけど。。どうすんの? -- [[きの]] &new{2006-02-26 14:49:02 (日)};
-OSのJAVA_HOME見てるんですね。そこをJDK1.5のパスにしたら、エラーがでなくなった。 -- [[きの]] &new{2006-02-26 15:14:22 (日)};
-やっぱりjava2htmlもだめだぁ -- [[きの]] &new{2006-02-26 16:14:57 (日)};
#comment
#topicpath
SIZE(10){現在のアクセス:&counter;}