- PR -

JSFのh:dataTableでSetのデータを表示する方法

1
投稿者投稿内容
koji
常連さん
会議室デビュー日: 2005/07/14
投稿数: 28
投稿日時: 2006-01-12 15:43
こんにちは。

現在、JSF+Hibernateでアプリケーションを作成しています。
以下のようなテーブル(記事とコメントテーブル)があります。
1つの記事に対して複数のコメントがあるような感じです。
これをHibernateでマッピングして、JSFで表示しようとしています。

create table article(
arid number,
content varchar(128),
);
create table comment(
comid number,
arid number,
username varchar(32),
content varchar(128),
);

middlegenというHibernateのマッピング定義ツールを使って自動で作成した
のですが、Articleクラスのメンバで
private Set comments;
のようにCommentクラスと関連付けられました。

h:dataTableにて、Setメンバであるcommentsを表示しようとしていま
すが、commentsがSetの為、h:dataTableで表示する事は無理でしょうか?
List等に加工してやらないといけませんでしょうか?
コードは以下のようにしてみましたが、commentsがSetだからだと思うのですが、
エラーが発生します。

コード:
jsp
<h:dataTable var="comment" value="#{article.comments}">
  <h:column>
    <h:panelGrid border="0" width="100%" columns="1">
      <h:outputText value="#{comment.username}" />
      <h:outputText value="#{comment.content}" />
    </h:panelGrid>
  </h:column>
</h:dataTable>

エラー
javax.faces.FacesException: Bean: org.hibernate.collection.PersistentSet, property: username
................



koji
常連さん
会議室デビュー日: 2005/07/14
投稿数: 28
投稿日時: 2006-01-12 17:36
自己レスです。

色々Webを探っていましたが、Setは無理なようなので、
toArrayで変換して対処しました。

ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)