• 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: ExistsInRelationshipQualifier
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: ExistsInRelationshipQualifier


  • Subject: Re: ExistsInRelationshipQualifier
  • From: James Cicenia <email@hidden>
  • Date: Mon, 19 May 2008 19:42:29 -0500

OK -

I replaced it this time and sure enough I don't get a npe. However, I am also not seeing any filtering.
The qualifier indeed ends with:


 and (not (documents CONTAINS at least 1 elements))

How do I debug this?

-j-

On May 19, 2008, at 7:03 PM, Chuck Hill wrote:

The second was the same too? Are you sure? I just fixed that late last week...


On May 19, 2008, at 4:38 PM, James Cicenia wrote:

OK -

My code is the same so no changes were made.

My usage:

byPortfolioQualifier = new EOAndQualifier(new NSArray(new Object[] {byPortfolioQualifier, hasDocumentsQualifier()}));


public EOQualifier hasDocumentsQualifier(){
ExistsInRelationshipQualifier qual = new ExistsInRelationshipQualifier("documents",null);
EONotQualifier not = new EONotQualifier(qual);
return not;
}


HTH
-j-




On May 19, 2008, at 6:19 PM, Chuck Hill wrote:


On May 19, 2008, at 3:30 PM, James Cicenia wrote:

Did this ever work for you?

Yes, frequently.


I have just started using this query and am getting:


[2008-05-19 17:17:07 CDT] <WorkerThread1> java.lang.NullPointerException
at com .webobjects .eoaccess .EOSQLExpression._aliasForRelationshipPath(EOSQLExpression.java: 324)
at com .webobjects .eoaccess .EOSQLExpression ._aliasForRelatedAttributeRelationshipPath(EOSQLExpression.java: 259)
at com .houdah .webobjects .eoaccess .qualifiers .ExistsInRelationshipQualifierSupport .sqlStringForSQLExpression (ExistsInRelationshipQualifierSupport.java:100)
at com.webobjects.eoaccess.EOQualifierSQLGeneration $Support._sqlStringForSQLExpression(EOQualifierSQLGeneration.java: 151)

Bonus points if you actually provide the code for _how_ your are using it...



And, I updated the qualifier from the posted link to the java file ExistsInRelationshipQualifierSupport

There have been some bugs in this for certain usage patterns. Pierre and I were looking at it just last week. Can you try this (one at a time, please), and let us know the results.



1. Edit ExistsInRelationshipQualifierSupport.sqlStringForSQLExpression(), find the bit of code like the below, and edit it to look like this (if it does not already):


		if (joinCount > 0) {
			for (int j = 0; j < joinCount; j++) {
				EOJoin join = (EOJoin) joins.objectAtIndex(j);
				EOAttribute sourceAttribute = join.sourceAttribute();
				EOAttribute destinationAttribute = join.destinationAttribute();

subBuffer.append(" AND ");
subBuffer .append(expression._aliasForRelatedAttributeRelationshipPath(
sourceAttribute, Qualifier.allButLastPathComponent(keyPath)));
subBuffer.append(" = ");
subBuffer .append(subExpression._aliasForRelatedAttributeRelationshipPath(
destinationAttribute, ""));
}
}



2. Edit Qualifier.allButLastPathComponent() to be like this:

	public static String allButLastPathComponent(String path)
	{
		int i = path.lastIndexOf(KEY_PATH_SEPARATOR_CHAR);

		return (i < 0) ? "" : path.substring(0, i);
	}

Did either of those fix things for you?


Chuck

On Dec 5, 2007, at 1:25 PM, David Holt wrote:

Hi Pierre,

Thanks for the reply. I was using the QualifierAdditions available at your blog, so I am sure that the line numbers don't match with Daniele's. Chuck sent me an updated version of that framework last night which didn't work and gives different line numbers than the error I reported yesterday.

I will switch to the Houdah frameworks before I make a detailed report of the error. I have imported the projects into Eclipse from the Google SVN repository but there are a ton of errors showing up in Eclipse. Is that the correct procedure? Can you tell me which projects I need to install as frameworks to import into my project? Once I get that up and running, I'll report back. Thanks!

David

On 5-Dec-07, at 9:27 AM, Pierre Bernard wrote:

Hi David!

Seems like you are experiencing the same crash as Daniele.

Unfortunately the line numbers in the stack trace don't much with what I have in the Google Code repository.
Your stack trace shows a call to _aliasForRelatedAttributeRelationshipPath at line 99 of ExistsInRelationshipQualifierSupport. I find 2 such calls. One at line 119 and one at 123. Which one is it?
How come the lines don't match?


What do the joins between the tables look like? Single or compound foreign keys? Any flattened relationships?

Could you tell me what expression, subExpression, sourceAttribute and destinationAttribute look like at the moment of the crash?

Pierre

On Dec 5, 2007, at 2:51 AM, David Holt wrote:

Hello All,

I am finally getting the chance to use the QualifierAdditions from Pierre Bernard (thanks Pierre!). I am using the following code that generates a NullPointerException. Can anyone see what I have done wrong?

I am trying to show all Artifacts that have not been specified as "favourites".



public EOFetchSpecification getPubliclyDisplayed() {

EOQualifier q1 = new EOKeyValueQualifier( "userName", EOQualifier.QualifierOperatorEqual, applicationUser.userName());
ExistsInRelationshipQualifier q2 = new ExistsInRelationshipQualifier("applicationUsers", q1);
// the inverse
EONotQualifier notq2 = new EONotQualifier(q2);

// EOQualifier q3 = new EOAndQualifier( new NSArray( new Object[] { q1, notq2 } ) );
EOFetchSpecification fs = new EOFetchSpecification( "Artifact", notq2, null );

return fs;
}



Stack trace:

java.lang.NullPointerException
File
Line#
Method
Package


EOSQLExpression.java
324
_aliasForRelationshipPath
com.webobjects.eoaccess
EOSQLExpression.java
259
_aliasForRelatedAttributeRelationshipPath
com.webobjects.eoaccess
ExistsInRelationshipQualifierSupport.java
99
sqlStringForSQLExpression
com.houdah.webobjects.eoaccess.qualifiers
EOQualifierSQLGeneration.java
151
_sqlStringForSQLExpression
com.webobjects.eoaccess
EOSQLExpression.java
1024
prepareSelectExpressionWithAttributes
com.webobjects.eoaccess
JDBCExpression.java
273
prepareSelectExpressionWithAttributes
com.webobjects.jdbcadaptor
EOSQLExpressionFactory.java
226
selectStatementForAttributes
com.webobjects.eoaccess
ERXSQLHelper.java
461
sqlExpressionForFetchSpecification
er.extensions
ERXSQLHelper.java
513
rowCountForFetchSpecification
er.extensions
ERXEOAccessUtilities.java
284
rowCountForFetchSpecification
er.extensions
ERXBatchingDisplayGroup.java
189
rowCount
er.extensions
ERXBatchingDisplayGroup.java
216
refetch
er.extensions
ERXBatchingDisplayGroup.java
276
fetch
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (Webobjects- email@hidden)
Help/Unsubscribe/Update your Subscription:

This email sent to email@hidden

- - - Houdah Software s. à r. l. http://www.houdah.com

HoudahGeo: One-stop photo geocoding
HoudahSpot: Powerful Spotlight frontend





_______________________________________________ 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

--

Practical WebObjects - for developers who want to increase their overall knowledge of WebObjects or who are trying to solve specific problems.
http://www.global-village.net/products/practical_webobjects








--

Practical WebObjects - for developers who want to increase their overall knowledge of WebObjects or who are trying to solve specific problems.
http://www.global-village.net/products/practical_webobjects







_______________________________________________ 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
  • Follow-Ups:
    • Re: ExistsInRelationshipQualifier
      • From: Chuck Hill <email@hidden>
References: 
 >Re: ExistsInRelationshipQualifier (From: James Cicenia <email@hidden>)
 >Re: ExistsInRelationshipQualifier (From: Chuck Hill <email@hidden>)
 >Re: ExistsInRelationshipQualifier (From: James Cicenia <email@hidden>)
 >Re: ExistsInRelationshipQualifier (From: Chuck Hill <email@hidden>)

  • Prev by Date: Re: Tracking EC Locking Issues when using MultiECLockManager and LockErrorScreamerEditingContext
  • Next by Date: Re: ExistsInRelationshipQualifier
  • Previous by thread: Re: ExistsInRelationshipQualifier
  • Next by thread: Re: ExistsInRelationshipQualifier
  • Index(es):
    • Date
    • Thread