This week's book giveaway is in the Big Data forum.
We're giving away four copies of Elasticsearch in Action and have Radu Gheorghe & Matthew Lee Hinman on-line!
See this thread for details.
The moose likes EJB and other Java EE Technologies and the fly likes EJB QL LIKE Operator Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

Win a copy of Elasticsearch in Action this week in the Big Data forum!
JavaRanch » Java Forums » Java » EJB and other Java EE Technologies
Bookmark "EJB QL LIKE Operator" Watch "EJB QL LIKE Operator" New topic

EJB QL LIKE Operator

Murtuza N Vohra

Joined: Nov 15, 2004
Posts: 4

I want to perform search by keyword on all fields of a table. Say I have a product table with following fields:

Field Name Data Type
ProductNo Integer
ProductName String
Brand String
UnitPrice Double
SupCode Integer

I cannot use LIKE operator as follows:
"SELECT OBJECT(p) FROM Product AS p WHERE p.productName LIKE ?1 or p.supCode LIKE ?1 or p.partNo LIKE ?1 p.brand LIKE ?1 or p.unitPrice LIKE ?1 ORDER BY p.productName ASC"

This throws error as LIKE operator expects String fields only. Is there any way I can use LIKE operator or any other way to search by keywords on all field of any data type using EJB QL.
Paul Sturrock

Joined: Apr 14, 2004
Posts: 10336

No. LIKE is String comparison, which won't work with other datatypes.

JavaRanch FAQ HowToAskQuestionsOnJavaRanch
Murtuza N Vohra

Joined: Nov 15, 2004
Posts: 4
Is there any other way we can write EJB QL statement to search in all table fields of any data type.
I agree. Here's the link:
subject: EJB QL LIKE Operator