Hi,
I have a problem with the Validation.

Validator:
package com.ccm30.validators;
  | 
  | import java.util.List;
  | 
  | import javax.persistence.NoResultException;
  | 
  | import org.hibernate.mapping.Property;
  | import org.hibernate.validator.PropertyConstraint;
  | import org.hibernate.validator.Validator;
  | import org.jboss.seam.Component;
  | import org.jboss.seam.annotations.Name;
  | import org.jboss.seam.framework.EntityController;
  | 
  | import com.ccms30.entities.CcmsProductline;
  | import com.ccms30.entities.CcmsProductlineController;
  | 
  | @Name("myProductlineListValidator")
  | public class MyProductlineListValidator extends EntityController implements
  |             Validator<MyProductlineList>, PropertyConstraint  {
  | 
  | 
  |     
  |     // part of the Validator<Annotation> contract,
  |     // allows to get and use the annotation values
  |     public void initialize(MyProductlineList parameters) {
  | 
  |     }
  | 
  |     // part of the property constraint contract
  |     public boolean isValid(Object value) {
  |             
  |             if (value == null){
  |                     System.out.println("Value is null");
  |                     return true;
  |             }
  |                     
  |             if (!(value instanceof String))
  |             {
  |                     System.out.println("Value is not a string");
  |                     return false;
  |             }
  |                     
  |             String string = (String) value;
  |             String trimmed = string.trim();
  |             
  |             try{
  |                     CcmsProductline cpl = (CcmsProductline) createQuery(
  |                     "select cpl from CcmsProductline cpl where 
cpl.name=:name")
  |                     .setParameter("name", trimmed).getSingleResult();
  | 
  |                     System.out.println("Value is in List");
  |                     return true;
  |             }catch(NoResultException e)
  |             {
  |                     System.out.println("Value is not in List");
  |                     return false;
  |             }
  | 
  |     }
  | 
  |     public void apply(Property arg0) {
  | 
  |     }
  | 
  | }
  | 

Entity:
package com.ccms30.entities;
  | // Generated 16.10.2007 13:32:22 by Hibernate Tools 3.2.0.b9
  | 
  | import java.util.Date;
  | import java.util.HashMap;
  | import java.util.HashSet;
  | import java.util.Set;
  | 
  | 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.JoinTable;
  | import javax.persistence.ManyToMany;
  | import javax.persistence.ManyToOne;
  | import javax.persistence.OneToMany;
  | import javax.persistence.SequenceGenerator;
  | import javax.persistence.Table;
  | import javax.persistence.Temporal;
  | import javax.persistence.TemporalType;
  | import javax.persistence.Transient;
  | 
  | import org.hibernate.validator.Length;
  | import org.hibernate.validator.NotNull;
  | import org.richfaces.model.TreeNode;
  | 
  | import com.ccm30.validators.MyProductlineList;
  | import com.ccms30.treenodes.CcmsTree;
  | /**
  |  * CcmsProductline generated by hbm2java
  |  */
  | @Entity
  | @Table(name = "CCMS_PRODUCTLINE", schema = "CCMSDB")
  | public class CcmsProductline extends CcmsTree implements 
java.io.Serializable {
  | 
  |     private static final long serialVersionUID = 1L;
  |     
  |     private Integer id;
  |     private CcmsProductline ccmsProductline;
  |     private CcmsUser ccmsUser;
  |     private String name;
  |     private String description;
  |     private Date modified;
  |     private Set<CcmsProductline> ccmsProductlines = new 
HashSet<CcmsProductline>(
  |                     0);
  |     private Set<CcmsProduct> ccmsProducts = new HashSet<CcmsProduct>(0);
  |     private Set<CcmsPolicy> ccmsPolicies = new HashSet<CcmsPolicy>(0);
  |     
  |     @Transient
  |     private String ccmsParentProductlineName = 
initCcmsParentProductlineName();
  | 
  |     public CcmsProductline() {
  |     }
  | 
  |     public CcmsProductline(Integer id, String name) {
  |             this.id = id;
  |             this.name = name;
  |     }
  |     public CcmsProductline(Integer id, CcmsProductline ccmsProductline,
  |                     CcmsUser ccmsUser, String name, String description, 
Date modified,
  |                     Set<CcmsProductline> ccmsProductlines,
  |                     Set<CcmsProduct> ccmsProducts, Set<CcmsPolicy> 
ccmsPolicies) {
  |             this.id = id;
  |             this.ccmsProductline = ccmsProductline;
  |             this.ccmsUser = ccmsUser;
  |             this.name = name;
  |             this.description = description;
  |             this.modified = modified;
  |             this.ccmsProductlines = ccmsProductlines;
  |             this.ccmsProducts = ccmsProducts;
  |             this.ccmsPolicies = ccmsPolicies;
  |     }
  | 
  |     @Id @SequenceGenerator(name = "generator", sequenceName = 
"ID_SEQUENCE")  @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = 
"generator")
  |     @Column(name = "ID", unique = true, nullable = false, precision = 22, 
scale = 0)
  |     @NotNull
  |     public Integer getId() {
  |             return this.id;
  |     }
  | 
  |     public void setId(Integer id) {
  |             this.id = id;
  |     }
  |     @ManyToOne(fetch = FetchType.LAZY)
  |     @JoinColumn(name = "PARENT_PRODUCTLINE_ID")
  |     public CcmsProductline getCcmsProductline() {
  |             return this.ccmsProductline;
  |     }
  | 
  |     public void setCcmsProductline(CcmsProductline ccmsProductline) {
  |             this.ccmsProductline = ccmsProductline;
  |     }
  |     @ManyToOne(fetch = FetchType.LAZY)
  |     @JoinColumn(name = "CREATOR")
  |     public CcmsUser getCcmsUser() {
  |             return this.ccmsUser;
  |     }
  | 
  |     public void setCcmsUser(CcmsUser ccmsUser) {
  |             this.ccmsUser = ccmsUser;
  |     }
  | 
  |     @Column(name = "NAME", nullable = false, length = 200)
  |     @NotNull
  |     @Length(max = 200)
  |     public String getName() {
  |             return this.name;
  |     }
  | 
  |     public void setName(String name) {
  |             this.name = name;
  |     }
  | 
  |     @Column(name = "DESCRIPTION", length = 4000)
  |     @Length(max = 4000)
  |     public String getDescription() {
  |             return this.description;
  |     }
  | 
  |     public void setDescription(String description) {
  |             this.description = description;
  |     }
  |     @Temporal(TemporalType.DATE)
  |     @Column(name = "MODIFIED", length = 7)
  |     public Date getModified() {
  |             return this.modified;
  |     }
  | 
  |     public void setModified(Date modified) {
  |             this.modified = modified;
  |     }
  |     @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy 
= "ccmsProductline")
  |     public Set<CcmsProductline> getCcmsProductlines() {
  |             return this.ccmsProductlines;
  |     }
  | 
  |     public void setCcmsProductlines(Set<CcmsProductline> ccmsProductlines) {
  |             this.ccmsProductlines = ccmsProductlines;
  |     }
  |     @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy 
= "ccmsProductline")
  |     public Set<CcmsProduct> getCcmsProducts() {
  |             return this.ccmsProducts;
  |     }
  | 
  |     public void setCcmsProducts(Set<CcmsProduct> ccmsProducts) {
  |             this.ccmsProducts = ccmsProducts;
  |     }
  |     @ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
  |     @JoinTable(name = "CCMS_POLICY_PRODUCTLINE_Z", joinColumns = 
@JoinColumn(name = "policy_id"), inverseJoinColumns = @JoinColumn(name = 
"productline_id"))
  |     public Set<CcmsPolicy> getCcmsPolicies() {
  |             return this.ccmsPolicies;
  |     }
  | 
  |     public void setCcmsPolicies(Set<CcmsPolicy> ccmsPolicies) {
  |             this.ccmsPolicies = ccmsPolicies;
  |     }
  |     
  |     public String initCcmsParentProductlineName()
  |     {
  |             if(ccmsProductline!=null)
  |                     return ccmsProductline.getName();
  |             else
  |                     return "";
  |     }
  |     
  | 
  |     @Transient
  |     @MyProductlineList
  |     public String getCcmsParentProductlineName() {
  |             System.out.println("operation called");
  |             return ccmsParentProductlineName;
  |     }
  |     
  |     @Transient
  |     public void setCcmsParentProductlineName(String 
ccmsParentProductlineName) {
  |             this.ccmsParentProductlineName = ccmsParentProductlineName;
  |     }
  | 
  |     @Override
  |     public String receiveType() {
  |             // TODO Auto-generated method stub
  |             return "CcmsProduct/CcmsProductline";
  |     }
  |     
  | }

I always get a "Stackoverflow" Exception.

I think i know why, because my Productline i get wants to validate its value 
and so on. how to avoid this?
Where should I set my validator?

Can you help me?!

View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4101843#4101843

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4101843
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to