[CBValidation] Unique field issue

Hello!

I am trying to define a unique field in a Contentbox app without success. (Contentbox 5.3 - Coldbox 6.8)

In my models app, i have got the following snippet

component persistent="true" table="cb_paravolo"{

	property name="paravoloID" fieldtype="id" column="paravoloID" generator="identity" setter="false";

	property name="issuer" column="paravolo_issuer" notnull="true" length="400";

	property name="amount" column="paravolo_amount" ormtype="float" notnull="true" length="15";

	property name="code" column="paravolo_code" unique="true" notnull="true" length="50";

    // auto-incrementing key type by default

    this.pk="paravoloID";
    
    

    // Constructor
	function init(){

		return this;
	}

	/**
	* is loaded?
	*/
	boolean function isLoaded(){
		return len( getFieldID() );
	}
	
}

and in my handler i have got the following snippet where the validation takes place

var result = validateModel(
			target=rc,
			constraints = {
				"issuer" = { required=true, size="1..200",requiredMessage="#getResource("require_issuer")#",sizeMessage="#getResource("size_issuer")#"},
				"amount" = { required=true, size="1..10",type="numeric",requiredMessage="#getResource("require_amount")#",sizeMessage="#getResource("size_amount")#",typeMessage="#getResource("type_amount")#"},
				"code"  =  { required=true, size="1..20",unique=true,requiredMessage="#getResource("require_code")#",sizeMessage="#getResource("size_code")#",uniqueMessage="#getResource("unique_code")#" }
			});

When i try to enter a duplicate or non - duplicate value i always take the following screen

Any idea?

Regards

Yes, the unique constraint is not a boolean but a struct

Thanks a lot for your reply!

I updated my model file

component persistent="true" table="cb_paravolo"{

	property name="paravoloID" fieldtype="id" column="paravoloID" generator="identity" setter="false";

       property name="issuer" column="paravolo_issuer" notnull="true" length="400";

	property name="amount" column="paravolo_amount" ormtype="float" notnull="true" length="15";

	property name="code" column="paravolo_code" unique="true" notnull="true" length="50";

    // auto-incrementing key type by default

    this.pk="paravoloID";

also my handler accordingly and the constraint works now without a problem

function add(event,rc,prc){

		var result = validateModel(
			target=rc,
			constraints = {
				"issuer" = { required=true, size="1..200",requiredMessage="#getResource("require_issuer")#",sizeMessage="#getResource("size_issuer")#"},
				"amount" = { required=true, size="1..10",type="numeric",requiredMessage="#getResource("require_amount")#",sizeMessage="#getResource("size_amount")#",typeMessage="#getResource("type_amount")#"},
				"code"  =  { required=true, size="1..20",unique={table:"cb_paravolo",column:"paravolo_code"},requiredMessage="#getResource("require_code")#",sizeMessage="#getResource("size_code")#",uniqueMessage="#getResource("unique_code")#" }
			});

	       
	       if (result.hasErrors()){

	       	  cbMessagebox.error(result.getAllErrors());
	       	  flash.persistRC(include="issuer,amount,code");
	       	  relocate(event="cbadmin.module.cbParavolo.home.new");
	       	  return; 	 
	       }

	       try {

	       	   var paravolo = ParavoloService.new("Paravolo",{
	       	   	"issuer" : Trim(rc.issuer),
	       	   	 "amount": Trim(rc.amount),
	       	   	 "code" : Trim(rc.code)
	       	   });

	       	   ParavoloService.save(paravolo);

	       	   cbMessagebox.success("#getResource("paravolo_created")#");

	          } catch(database e){

	       	  cbMessagebox.error(e.message); 
	       }

          relocate('cbadmin.module.cbParavolo.home');
		}

when i try to save-update and perhaps delete a new record i get the following error

component extends="modules.contentbox.modules.contentbox-deps.modules.cborm.models.BaseORMService" singleton{

	public ParavoloService function init(){
		// init super class
		super.init(entityName="Paravolo");
		return this;
	}
	
}

Regards a lot!

Hello again!

I have managed to fix it regarding duplicate value during insert operation

regarding duplicate value during update operation i get the following

Regards again