By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
424,679 Members | 2,602 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 424,679 IT Pros & Developers. It's quick & easy.

Specifying the conditions for inner join at runtime using Filter

P: 15
Say i have one-to-many relationship between Product and ProductNames
Product ----> PID (PK)
ProductNames------> PID, USECODE, STARTTIME as composite ID and ENDTIME is another normal column.

Now i want to fetch product with PID='1' and USECODE='100' and STARTTIME < CURRENTTIME < ENDTIME.

CURRENTTIME value will be known at runtime.

How to specify this in mapping and fetch Product & ProductNames using eager fetching?

ANS: Using Filters, this problem can be resolved. Define filter, attach filter and enable filter. Filter supports
specifying positional parameters value at runtime.
but i got 1 problem with filters :
Suppose i have 1 product with id as 100, it has 5 ProductNames..but when we apply filter only 2 productNames remains.

When i use just "inner join fetch" with no filters, it returns me one Product object which contains List of productNames properly
BUT When i use "select distinct product" and inner join fetch" with filter, it returns one product populated with productNames
list which contains 3 elements viz. null, first filtered productName, second filtered productName..

Why productNames list contains the first element as null? This seems to be a bug..
Apr 28 '09 #1
Share this Question
Share on Google+
1 Reply

Expert 100+
P: 392
Sounds like this question should be posted in a forum for SQL or the DataBase you are using rather than for Java. Unless you are doing this with EJB entity beans or a similar frame work. Is that the case?
Apr 29 '09 #2

Post your reply

Sign in to post your reply or Sign up for a free account.