• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: unique contraint error
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: unique contraint error


  • Subject: Re: unique contraint error
  • From: Fabian Peters <email@hidden>
  • Date: Thu, 22 Aug 2013 18:47:12 +0200

Hi Ted,

Am 22.08.2013 um 16:15 schrieb Theodore Petrosky:

> So I can create ValidationTemplate.strings
>
> "Quote.quoteAmount"="You must enter a dollar amount in the format 123.00 (you entered weird characters)!";
>
> is there  a key that I can access what was typed? @@enteredQuoteAmountValue@@
>
> so I can add it to the error message?

You should be able to refer to the value the user entered via "@@escapedValue@@". If you create the exception, then you should pass the value, see <http://www.aurealis.de/webobjects/wonder/api/html/classer_1_1extensions_1_1validation_1_1_e_r_x_validation_factory.html#0a9ef3a34c0e7f052c37ff669a8c223d>

> also,
> if I input 234.66666666666 in the field my app crashes with:
>
> Error:	com.webobjects.eoaccess.EOGeneralAdaptorException: The attribute quoteAmount has a scale of 2, but the value 123.666666666 has a scale of 9: Rounding necessary
> Reason:	The attribute quoteAmount has a scale of 2, but the value 123.666666666 has a scale of 9: Rounding necessary

I'm not sure about the rounding issue as I've never had that. As an aside: Maybe you should consider using BigDecimal if precision is an issue.

> so I created a validation method:
>
> 	  public Object validateQuoteAmount(Object aValue) throws ValidationException {
>
> 	    Double returnValue = 0.0;
> 	    try {
> 	      DecimalFormat df = new DecimalFormat("#.##");
> 	      returnValue = Double.valueOf(df.format(aValue));
>
> 	    } catch (Exception e) {
> 	      // TODO Auto-generated catch block
> 	      e.printStackTrace();
> 	    }
>
> 	    return returnValue;
> 	  }

You should check the object type (is it a double?), coerce the value and if anything is invalid, throw a validation exception:

                    throw ERXValidationFactory.defaultFactory().createCustomException(
                            this,
                            theProperty,
                            theValueProvided),
                            "TheExceptionType");

Fabian

> is there a better way?
>
> Ted
>
>
> On Aug 21, 2013, at 1:42 PM, Ramsey Gurley <email@hidden> wrote:
>
>> http://thecodinglove.com/post/49933241299/when-i-start-using-a-3rd-party-lib-and-notice-there-is
>>
>> ERXValidationFactory.templateForEntityPropertyType determines what keys are considered for most validation messages. In order, they are
>>
>> entity.property.type
>> entity.property
>> property.type
>> property
>> type
>>
>> So let's say you have an EO named Document with a mandatory title attribute. Leaving that blank would result in a NullPropertyException type validation error. So, your keys would be from most specific to least:
>>
>> Document.title.NullPropertyException
>> Document.title
>> title.NullPropertyException
>> title
>> NullPropertyException
>>
>> Typically, the least specific key is already defined in Wonder's ValidationTemplate.strings in the frameworks.
>>
>> "NullPropertyException" = "Please provide @@indefiniteArticleForProperty@@ <b>@@displayNameForProperty@@</b>.";
>>
>> You can override these with the more specific keys.
>>
>> In this specific case, the validation template string is actually defined elsewhere. It's the result of an EOGeneralAdaptorException being converted into a standard validation exception in the ERXSQLHelper. You can find it in the PostgresqlSQLHelper.handleDatabaseException method.
>>
>> On Aug 21, 2013, at 10:22 AM, Christoph Wick wrote:
>>
>>> Is there a documentation about the possible keys for that? What kinds of keys can I put into a ValidationTemplates.string?
>>>
>>> Thx, C.U.CW
>>> --
>>> What are the three enemies of a programmer? Sunlight, oxygen, and the appalling roar of the birds.
>>>
>>> On 14.08.2013, at 04:07, Theodore Petrosky <email@hidden> wrote:
>>>
>>>> wow, that's beautiful
>>>>
>>>>
>>>>
>>>> On Aug 13, 2013, at 8:45 PM, Paul Hoadley <email@hidden> wrote:
>>>>
>>>>> Hi Ted,
>>>>>
>>>>> On 14/08/2013, at 10:03 AM, Theodore Petrosky <email@hidden> wrote:
>>>>>
>>>>>> I added an index and unique constraint to my User. loginName column.
>>>>>>
>>>>>> I see in the logs that when I try to violate the uniqueness my d2w does the correct thing and complain however this is the error:
>>>>>>
>>>>>> Could not save your changes: CustomMethodException
>>>>>>
>>>>>> I do see in the logs:
>>>>>>
>>>>>> ERROR: duplicate key value violates unique constraint "loginname_idx"
>>>>>>
>>>>>> did I miss something in a rule to pass the better worded error message to the user?
>>>>>
>>>>> Create Resources/English.lproj/ValidationTemplate.strings and add:
>>>>>
>>>>> {
>>>>> 	"UniqueConstraintException.loginname_idx" = "Please choose a different username.";
>>>>> }
>>>>>
>>>>> Does that work?
>>>>>
>>>>>
>>>>> --
>>>>> Paul Hoadley
>>>>> http://logicsquad.net/
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> Do not post admin requests to the list. They will be ignored.
>>>> Webobjects-dev mailing list      (email@hidden)
>>>> Help/Unsubscribe/Update your Subscription:
>>>>
>>>> This email sent to email@hidden
>>>
>>>
>>> _______________________________________________
>>> Do not post admin requests to the list. They will be ignored.
>>> Webobjects-dev mailing list      (email@hidden)
>>> Help/Unsubscribe/Update your Subscription:
>>>
>>> This email sent to email@hidden
>>
>>
>> _______________________________________________
>> Do not post admin requests to the list. They will be ignored.
>> Webobjects-dev mailing list      (email@hidden)
>> Help/Unsubscribe/Update your Subscription:
>>
>> This email sent to email@hidden
>
>
> _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Webobjects-dev mailing list      (email@hidden)
> Help/Unsubscribe/Update your Subscription:
>
> This email sent to email@hidden


 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:

This email sent to email@hidden


References: 
 >unique contraint error (From: Theodore Petrosky <email@hidden>)
 >Re: unique contraint error (From: Paul Hoadley <email@hidden>)
 >Re: unique contraint error (From: Theodore Petrosky <email@hidden>)
 >Re: unique contraint error (From: Christoph Wick <email@hidden>)
 >Re: unique contraint error (From: Ramsey Gurley <email@hidden>)
 >Re: unique contraint error (From: Theodore Petrosky <email@hidden>)

  • Prev by Date: Re: WOUnit testing with partial entities
  • Next by Date: Re: unique contraint error
  • Previous by thread: Re: unique contraint error
  • Next by thread: Re: unique contraint error
  • Index(es):
    • Date
    • Thread