SEAM-GEN Entities and the issue of BOOLEAN type fields

Hello Everyone,

I'm experiencing a strange issue with Seam-Gen after generating the Seam entities from a database with 3 tables (using JBoss Developer Studio ver: 2.0.0.CR2). Any entity/table with BOOLEAN type field throws validation errors (length must be between 0 and 1) no matter what AND even if I comment out that input boolean field (from front end) just to test that I can save it. I get this error from the console: 21:19:01,489 ERROR ContainerBase Servlet.service() for servlet Faces Servlet threw exception. The only time I do not have any issues with saving via the Seam generated CRUD form is if it is saving to a table that does not have any BOOLEAN fields?

I SEAM-GEN'ed from a postgresql database v8.4, has anyone else encountered these issues? If so did you find a solution? Or do I have to make sure that when I design my database(s) that I don't use boolean type columns?

Example javabean found in code section below which is mapped to the database

Thanks,
package com.jsfcompref.virtualtrainerseam.entity;
 
// Generated Mar 26, 2009 12:04:39 AM by Hibernate Tools 3.2.4.CR1
 
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import org.hibernate.validator.Length;
import org.hibernate.validator.NotNull;
 
/**
 * Users generated by hbm2java
 */
@Entity
@Table(name = "users", schema = "public")
public class Users implements java.io.Serializable {
 
	private int accountno;
	private String firstname;
	private String lastname;
	private String gender;
	private Date dob;
	private String email;
	private String servicelevel;
	private String userid;
	private String password;
	private Boolean trainer;
	private Boolean isloggedin;
 
	public Users() {
	}
 
	public Users(int accountno) {
		this.accountno = accountno;
	}
 
	public Users(int accountno, String firstname, String lastname,
			String gender, Date dob, String email, String servicelevel,
			String userid, String password, Boolean trainer, Boolean isloggedin) {
		this.accountno = accountno;
		this.firstname = firstname;
		this.lastname = lastname;
		this.gender = gender;
		this.dob = dob;
		this.email = email;
		this.servicelevel = servicelevel;
		this.userid = userid;
		this.password = password;
		this.trainer = trainer;
		this.isloggedin = isloggedin;
	}
 
	@Id
	@Column(name = "accountno", unique = true, nullable = false)
	@NotNull
	public int getAccountno() {
		return this.accountno;
	}
 
	public void setAccountno(int accountno) {
		this.accountno = accountno;
	}
 
	@Column(name = "firstname", length = 400)
	@Length(max = 400)
	public String getFirstname() {
		return this.firstname;
	}
 
	public void setFirstname(String firstname) {
		this.firstname = firstname;
	}
 
	@Column(name = "lastname", length = 400)
	@Length(max = 400)
	public String getLastname() {
		return this.lastname;
	}
 
	public void setLastname(String lastname) {
		this.lastname = lastname;
	}
 
	@Column(name = "gender", length = 400)
	@Length(max = 400)
	public String getGender() {
		return this.gender;
	}
 
	public void setGender(String gender) {
		this.gender = gender;
	}
 
	@Temporal(TemporalType.DATE)
	@Column(name = "dob", length = 13)
	public Date getDob() {
		return this.dob;
	}
 
	public void setDob(Date dob) {
		this.dob = dob;
	}
 
	@Column(name = "email", length = 400)
	@Length(max = 400)
	public String getEmail() {
		return this.email;
	}
 
	public void setEmail(String email) {
		this.email = email;
	}
 
	@Column(name = "servicelevel", length = 400)
	@Length(max = 400)
	public String getServicelevel() {
		return this.servicelevel;
	}
 
	public void setServicelevel(String servicelevel) {
		this.servicelevel = servicelevel;
	}
 
	@Column(name = "userid", length = 400)
	@Length(max = 400)
	public String getUserid() {
		return this.userid;
	}
 
	public void setUserid(String userid) {
		this.userid = userid;
	}
 
	@Column(name = "password", length = 400)
	@Length(max = 400)
	public String getPassword() {
		return this.password;
	}
 
	public void setPassword(String password) {
		this.password = password;
	}
 
	@Column(name = "trainer")
//	@Length(min = 1, max = 1)
	public Boolean getTrainer() {
		return this.trainer;
	}
 
	public void setTrainer(Boolean trainer) {
		this.trainer = trainer;
	}
 
	@Column(name = "isloggedin", length = 1)	
//	@Length(min = 1, max = 1)
	public Boolean getIsloggedin() {
		return this.isloggedin;
	}
 
	public void setIsloggedin(Boolean isloggedin) {
		this.isloggedin = isloggedin;
	}
 
}

Open in new window

LVL 1
NMATRIX9Asked:
Who is Participating?
 
NMATRIX9Connect With a Mentor Author Commented:
Issue solved it was the database schema itself with character length set too short.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.