Dear. I've installed the JBoss 4.0.4 GA with EJB3 with installer. There is an bug with dealing with @Lob annotation column in the Mysql 4.1.4.
The column datatype is text in the mysql, so I've use @Lob annotation. If the column data has I18N character(Korean for me), the column datas are cutting it off. BUT if the column data has only english character, it's OK. - JBoss 4.0.4 GA with EJB 3.0 - Mysql 4.1.4, database's character set is euckr The entity bean source is as below. | package com.javamodeling.homepage.board; | | import java.util.Collection; | import java.util.Iterator; | | import javax.ejb.Remove; | import javax.persistence.CascadeType; | import javax.persistence.Column; | import javax.persistence.Entity; | import javax.persistence.FetchType; | import javax.persistence.GeneratedValue; | import javax.persistence.GenerationType; | import javax.persistence.Id; | import javax.persistence.JoinColumn; | import javax.persistence.Lob; | import javax.persistence.ManyToOne; | import javax.persistence.OneToMany; | import javax.persistence.Table; | import javax.persistence.TableGenerator; | | import org.hibernate.LazyInitializationException; | | import com.javamodeling.homepage.common.AbstractResultValue; | import com.javamodeling.homepage.ejb.JmcMember; | import com.javamodeling.util.DateUtils; | | @Entity | @Table(name = "JAVAMODELING_BOARD") | @TableGenerator(name = "IdGen", | table = "ID_GENERATOR", | pkColumnName = "ID_NO", | pkColumnValue = "1", | valueColumnName = "NEXT_VALUE", | allocationSize = 1) | public class Board extends AbstractResultValue { | | private Integer boardSeq; | private Character noticeYn; | private Integer groupNo; | private Integer groupIndex; | private Integer levelDepth; | private String subject; | private String contents; | private String referer; | private Integer viewCount; | private Integer childReplyCount; | private Character deleteYn; | private Integer memberNo; | private String inputDate; | private String updateDate; | private Integer parentBoardSeq; | private Integer listSeq; | | private Board parentBoard; | | private BoardList boardList; | | // ???? ??? ?? ?? | private JmcMember jmcMember; | | private Collection<BoardFile> boardFiles; | | private Collection<Board> childBoards; | | public Board() { | | } | | @Override | public void reset() { | | } | | @Column(name = "LIST_SEQ") | public Integer getListSeq() { | return listSeq; | } | | public void setListSeq(Integer listSeq) { | this.listSeq = listSeq; | } | | @Column(name = "BOARD_SEQ") | @Id @GeneratedValue(strategy=GenerationType.TABLE, generator="IdGen") | public Integer getBoardSeq() { | return boardSeq; | } | | public void setBoardSeq(Integer boardSeq) { | this.boardSeq = boardSeq; | } | | @Column(name = "CHILD_REPLY_COUNT") | public Integer getChildReplyCount() { | return childReplyCount; | } | | public void setChildReplyCount(Integer childReplyCount) { | this.childReplyCount = childReplyCount; | } | | @Column(name = "CONTENTS") | @Lob | public String getContents() { | return contents; | } | | public void setContents(String contents) { | this.contents = contents; | } | | @Column(name = "DELETE_YN") | public Character getDeleteYn() { | return deleteYn; | } | | public void setDeleteYn(Character deleteYn) { | this.deleteYn = deleteYn; | } | | @Column(name = "GROUP_INDEX") | public Integer getGroupIndex() { | return groupIndex; | } | | public void setGroupIndex(Integer groupIndex) { | this.groupIndex = groupIndex; | } | | @Column(name = "GROUP_NO") | public Integer getGroupNo() { | return groupNo; | } | | public void setGroupNo(Integer groupNo) { | this.groupNo = groupNo; | } | | @Column(name = "INPUT_DATE") | public String getInputDate() { | return inputDate; | } | | public void setInputDate(String inputDate) { | this.inputDate = inputDate; | } | | @Column(name = "MEMBER_NO") | public Integer getMemberNo() { | return memberNo; | } | | public void setMemberNo(Integer memberNo) { | this.memberNo = memberNo; | } | | @Column(name = "LEVEL_DEPTH") | public Integer getLevelDepth() { | return levelDepth; | } | | public void setLevelDepth(Integer levelDepth) { | this.levelDepth = levelDepth; | } | | @Column(name = "NOTICE_YN") | public Character getNoticeYn() { | return noticeYn; | } | | public void setNoticeYn(Character noticeYn) { | this.noticeYn = noticeYn; | } | | @Column(name = "PARENT_BOARD_SEQ") | public Integer getParentBoardSeq() { | return parentBoardSeq; | } | | public void setParentBoardSeq(Integer parentBoardSeq) { | this.parentBoardSeq = parentBoardSeq; | } | | @Column(name = "REFERER") | public String getReferer() { | return referer; | } | | public void setReferer(String referer) { | this.referer = referer; | } | | @Column(name = "SUBJECT") | public String getSubject() { | return subject; | } | | public void setSubject(String subject) { | this.subject = subject; | } | | @Column(name = "UPDATE_DATE") | public String getUpdateDate() { | return updateDate; | } | | public void setUpdateDate(String updateDate) { | this.updateDate = updateDate; | } | | @Column(name = "VIEW_COUNT") | public Integer getViewCount() { | return viewCount; | } | | public void setViewCount(Integer viewCount) { | this.viewCount = viewCount; | } | | @ManyToOne | @JoinColumn(name = "LIST_SEQ", insertable = false, updatable = false) | public BoardList getBoardList() { | return boardList; | } | | public void setBoardList(BoardList boardList) { | this.boardList = boardList; | } | | @ManyToOne | @JoinColumn(name = "PARENT_BOARD_SEQ", insertable = false, updatable = false) | public Board getParentBoard() { | return parentBoard; | } | | public void setParentBoard(Board parentBoard) { | this.parentBoard = parentBoard; | } | | @ManyToOne | @JoinColumn(name = "MEMBER_NO", insertable = false, updatable = false) | public JmcMember getJmcMember() { | return jmcMember; | } | | public void setJmcMember(JmcMember jmcMember) { | this.jmcMember = jmcMember; | } | | @OneToMany(fetch = FetchType.LAZY, mappedBy = "parentBoard") | public Collection<Board> getChildBoards() { | return childBoards; | } | | public void setChildBoards(Collection<Board> childBoards) { | this.childBoards = childBoards; | } | | @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, mappedBy = "board") | public Collection<BoardFile> getBoardFiles() { | return boardFiles; | } | | public void setBoardFiles(Collection<BoardFile> boardFiles) { | this.boardFiles = boardFiles; | } | and after call a methos ad below, the data of Contents column is cut off | public Board searchOneWithOneLevel(Integer boardSeq) { | | Board board = null; | | try { | | board = entityManager.find(Board.class, boardSeq); | | board.setViewCount(board.getViewCount() + 1); | | entityManager.flush(); | | board.obtainOneLevelChild(); | board.setResultCode(new Integer(1)); | board.setResultMessage(BoardBundle.getString("Success.Search")); | | } catch (EntityNotFoundException e) { | | logger.error(e.getMessage()); | | board = new Board(); | board.setResultCode(new Integer(-1)); | board.setResultMessage(BoardBundle.getString("Error.EntityNotFoundException")); | } | | return board; | } | It seems like a bug. # Ritchie. View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3950593#3950593 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3950593 _______________________________________________ JBoss-user mailing list JBoss-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jboss-user