What about your manyToOne constraint pointing to Container and not
RepositoryContainer?
.manyToOne(Container.class, "id")
On 15 Aug 2007, at 19:56, Jeremy Whitlock wrote:
>
> Geert,
> I have a database browser that confirms there is a
> RepositoryContainer with the id of 0. As for your last thought, I am
> trying to create a new Repository object, based on form entry, and
> input that into the database. When I run Run:
>
> if (((Validated)repository).validate(SACUtils.getGenericQueryManager
> (SVNRepository.class)))
> {
> ....
> }
>
> It never makes it into that block because the .validate(GQM) always
> returns false. When I do repository.getContainerId() before the
> .validate() call, it returns 0. See anything else?
>
> Take care,
>
> Jeremy
>
> On 8/15/07, Geert Bevin <[EMAIL PROTECTED]> wrote:
>>
>> Euhm, hang on. So you have a foreign key from column containerId to
>> the table that backs to Container class. However, you're here working
>> with RepositoryContainer tables and inserting into that. Is this
>> correct? Are you sure you're working with the correct entities?
>>
>> On 15 Aug 2007, at 15:07, Jeremy Whitlock wrote:
>>
>>>
>>> Geert,
>>> Here is all of the executed SQL (obfuscated):
>>>
>>> Aug 15, 2007 7:00:11 AM com.uwyn.rife.database.DbStatement
>>> outputTrace
>>> INFO: 1ms : CREATE SEQUENCE SEQ_repositorycontainer
>>> Aug 15, 2007 7:00:11 AM com.uwyn.rife.database.DbStatement
>>> outputTrace
>>> INFO: 111ms : CREATE TABLE repositorycontainer (active CHAR(1) NOT
>>> NULL, authzPath LONGVARCHAR NOT NULL, created TIMESTAMP NOT NULL,
>>> description VARCHAR(256) NOT NULL, displayName VARCHAR(64) NOT NULL,
>>> id INTEGER NOT NULL, path LONGVARCHAR NOT NULL, serverType VARCHAR
>>> (8)
>>> NOT NULL, PRIMARY KEY (id), UNIQUE (id), CHECK (active != ''), CHECK
>>> (authzPath != ''), CHECK (description != ''), CHECK (displayName !=
>>> ''), CHECK (path != ''), CHECK (serverType != ''), CHECK (serverType
>>> IN ('Apache','Serve')))
>>> Aug 15, 2007 7:00:11 AM
>>> org.thoughtspark.sac.elements.ApplicationInitializer$Deployer
>>> install
>>> INFO: Table created for RepositoryContainer
>>> Aug 15, 2007 7:00:11 AM com.uwyn.rife.database.DbStatement
>>> outputTrace
>>> INFO: 0ms : CREATE SEQUENCE SEQ_repository
>>> Aug 15, 2007 7:00:11 AM com.uwyn.rife.database.DbStatement
>>> outputTrace
>>> INFO: 29ms : CREATE TABLE repository (active CHAR(1) NOT NULL,
>>> containerId INTEGER NOT NULL, created TIMESTAMP NOT NULL, dataStore
>>> VARCHAR(4) NOT NULL, description VARCHAR(256) NOT NULL, displayName
>>> VARCHAR(64) NOT NULL, id INTEGER NOT NULL, name VARCHAR(64) NOT
>>> NULL,
>>> PRIMARY KEY (id), FOREIGN KEY (containerId) REFERENCES
>>> repositorycontainer (id), UNIQUE (id), CHECK (active != ''), CHECK
>>> (containerId != 0), CHECK (dataStore != ''), CHECK (dataStore IN
>>> ('BDB','FSFS')), CHECK (description != ''), CHECK (displayName !=
>>> ''),
>>> CHECK (name != ''))
>>> Aug 15, 2007 7:00:11 AM
>>> org.thoughtspark.sac.elements.ApplicationInitializer$Deployer
>>> install
>>> INFO: Table created for Repository
>>> Aug 15, 2007 7:01:24 AM com.uwyn.rife.database.DbStatement
>>> outputTrace
>>> INFO: 36ms : SELECT * FROM Repository WHERE active = 'Y' ORDER BY
>>> displayName ASC
>>> Aug 15, 2007 7:01:24 AM com.uwyn.rife.database.DbStatement
>>> outputTrace
>>> INFO: 2ms : SELECT * FROM RepositoryContainer WHERE active = 'Y'
>>> ORDER
>>> BY displayName ASC
>>> Aug 15, 2007 7:01:35 AM com.uwyn.rife.database.DbStatement
>>> outputTrace
>>> INFO: 0ms : SELECT * FROM RepositoryContainer WHERE active = 'Y'
>>> ORDER
>>> BY displayName ASC
>>> Aug 15, 2007 7:02:18 AM com.uwyn.rife.database.DbStatement
>>> outputTrace
>>> INFO: 12ms : SELECT count(*) FROM repositorycontainer WHERE id = -1
>>> Aug 15, 2007 7:02:18 AM com.uwyn.rife.database.DbStatement
>>> outputTrace
>>> INFO: 0ms : SELECT count(*) FROM repositorycontainer WHERE
>>> displayName
>>> = 'Production Container' AND active = 'Y'
>>> Aug 15, 2007 7:02:18 AM com.uwyn.rife.database.DbStatement
>>> outputTrace
>>> INFO: 0ms : SELECT count(*) FROM repositorycontainer WHERE path =
>>> '/Users/jwhitlock/dev/java/sac/web-app/target/repos' AND active =
>>> 'Y'
>>> Aug 15, 2007 7:02:18 AM com.uwyn.rife.database.DbStatement
>>> outputTrace
>>> INFO: 0ms : CALL NEXT VALUE FOR SEQ_repositorycontainer
>>> Aug 15, 2007 7:02:18 AM com.uwyn.rife.database.DbStatement
>>> outputTrace
>>> INFO: 103ms : INSERT INTO repositorycontainer (active, authzPath,
>>> created, description, displayName, id, path, serverType) VALUES
>>> (?, ?,
>>> ?, ?, ?, ?, ?, ?)
>>> Aug 15, 2007 7:02:19 AM com.uwyn.rife.database.DbStatement
>>> outputTrace
>>> INFO: 0ms : SELECT * FROM RepositoryContainer WHERE active = 'Y'
>>> ORDER
>>> BY displayName ASC
>>> Aug 15, 2007 7:02:23 AM com.uwyn.rife.database.DbStatement
>>> outputTrace
>>> INFO: 0ms : SELECT * FROM Repository WHERE active = 'Y' ORDER BY
>>> displayName ASC
>>> Aug 15, 2007 7:02:23 AM com.uwyn.rife.database.DbStatement
>>> outputTrace
>>> INFO: 4ms : SELECT * FROM RepositoryContainer WHERE active = 'Y'
>>> ORDER
>>> BY displayName ASC
>>> Aug 15, 2007 7:02:41 AM com.uwyn.rife.database.DbStatement
>>> outputTrace
>>> INFO: 1ms : SELECT count(*) FROM repository WHERE id = -1
>>> Aug 15, 2007 7:02:41 AM com.uwyn.rife.database.DbStatement
>>> outputTrace
>>> INFO: 1ms : SELECT * FROM repositorycontainer WHERE id = 0
>>>
>>> The above is me successfully creating a RepositoryContainer object
>>> with the id of 0 and then trying to create a Repository that has a
>>> containerId of 0.
>>>
>>> Take care,
>>>
>>> Jeremy
>>>
>>> On 8/15/07, Geert Bevin <[EMAIL PROTECTED]> wrote:
>>>>
>>>> Hi Jeremy,
>>>>
>>>> can you please turn on SQL tracing to see which query is actually
>>>> executed to perform the validation?
>>>>
>>>> You can do this by setting the config parameter SQL_DEBUG_TRACE to
>>>> true.
>>>>
>>>> Thanks,
>>>>
>>>> Geert
>>>>
>>>> On 15 Aug 2007, at 04:18, Jeremy Whitlock wrote:
>>>>
>>>>>
>>>>> Hi All,
>>>>> I have a simple database configuration that looks like so:
>>>>>
>>>>> Repository
>>>>> ----------------
>>>>> ID (PK)
>>>>> CONTAINERID (FK)
>>>>> .....
>>>>>
>>>>> Container
>>>>> --------------
>>>>> ID (PK)
>>>>> .....
>>>>>
>>>>> In my RepositoryMetaData.java, I have the following constraint:
>>>>>
>>>>> .....
>>>>> addConstraint(new ConstrainedProperty("containerId")
>>>>> .notEmpty(true)
>>>>> .notNull(true)
>>>>> .manyToOne(Container.class, "id")
>>>>> );
>>>>> .....
>>>>>
>>>>> RIFE creates my tables as expected from the MetaData classes but
>>>>> when
>>>>> I try to validate a Repository bean, I get a ValidationError
>>>>> when I
>>>>> shouldn't. The Repository.getContainerId() returns an id of an
>>>>> existing container but when I do:
>>>>>
>>>>> ((Validated)repository).validate(Utils.getGenericQueryManager
>>>>> (Repository.class))
>>>>>
>>>>> I get the following (error is a ValidationError):
>>>>>
>>>>> error.getSubject() = INVALID
>>>>> error.getIdentifier() = containerId
>>>>> error.getErroneousValue() = null
>>>>>
>>>>> Now...I know that there is a valid containerId set in my
>>>>> Repository
>>>>> bean but RIFE continues to tell me that the containerId is
>>>>> invalid.
>>>>> If my understanding is correct, if I have a Container row with
>>>>> an id
>>>>> of 0 and my Repository bean has a containerId of 0, it should be
>>>>> valid. Can someone see some error in my logic? All I want to
>>>>> do is
>>>>> store the id of a Container object in my Repository object and
>>>>> validate properly. Based on my POJOs and the MetaData for the
>>>>> POJOs,
>>>>> I do not see where I'm going wrong.
>>>>>
>>>>> Thanks in advance,
>>>>>
>>>>> Jeremy
>>>>>
>>>>>>
>>>>
>>>> --
>>>> Geert Bevin
>>>> Terracotta - http://www.terracotta.org
>>>> Uwyn "Use what you need" - http://uwyn.com
>>>> RIFE Java application framework - http://rifers.org
>>>> Music and words - http://gbevin.com
>>>>
>>>>
>>>>>
>>>>
>>>
>>>>
>>
>> --
>> Geert Bevin
>> Terracotta - http://www.terracotta.org
>> Uwyn "Use what you need" - http://uwyn.com
>> RIFE Java application framework - http://rifers.org
>> Music and words - http://gbevin.com
>>
>>
>>>
>>
>
> >
--
Geert Bevin
Terracotta - http://www.terracotta.org
Uwyn "Use what you need" - http://uwyn.com
RIFE Java application framework - http://rifers.org
Music and words - http://gbevin.com
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"rife-users" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/rife-users?hl=en
-~----------~----~----~----~------~----~------~--~---