looking good. used approximately the same approach
concerning your questions about find and create. i guess they take both an array which contains as many fields as the db model. i check the length of the array to the db-model. if it's not the same i throw IllegalArgumentException
and your find method will have to return more records than you might show in your gui, because you don't have an option if you have to search on (name and location) or (name or location). so you have to return all records starting with specified name or with the specified location. and in your business layer you have to filter the returned array depending on which choice the user made.