Thanks for the reply Chuck. Your hint about using a derived column was really helpful. I defined it as CONCAT(author,title) which works as expected. I am not sure what the COALESCE function would give me?
I have never done this, but you should be able to set this up in EOModeler. Add a new Attribute named simpleSearch, make it Derived instead of Column. Define it as
COALESCE( author, '') || COALESCE( title, '')
and mark it as read only. You can get rid of the method below and your existing search should work.
Chuck
On Jul 14, 2006, at 5:03 PM, David Holt wrote:
I am using DisplayGroups which make queries on individual attributes very easy.
I would like to provide a simple search where one text field returns a search on a concatenation of several attributes of the entity. I just tried putting the following code in my EO to try this concept out (title and author are attributes in the entity):
public String simpleSearch() {
String author = author();
String title = title();
String simpleSearch;
if ((author != null) && (!author.equals(""))) {
simpleSearch = author + " " + title;
}
else {
simpleSearch = title;
}
return simpleSearch;
}
When I try and do a queryMatch on the simpleSearch field I get an error:
java.lang.IllegalStateException: sqlStringForKeyValueQualifier: attempt to generate SQL for com.webobjects.eocontrol.EOKeyValueQualifier (simpleSearch caseinsensitivelike '*test*') failed because attribute identified by key 'simpleSearch' was not reachable from from entity 'Document'
I assume this is because the attribute "simpleSearch" is not actually in the database. Is there a better strategy for searching concatenated fields using DisplayGroups?
Thanks,
David
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Help/Unsubscribe/Update your Subscription:
--