<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 6.00.2900.2995" name=GENERATOR></HEAD>
<BODY>
<DIV><SPAN class=500520217-13122006><FONT face=Arial size=2>I have a similar 
situation to what Alex Bacon described in his "Major issue with Hibernate 
Filters" thread in September, and I'm wondering if there was ever a palatable 
resolution.</FONT></SPAN></DIV>
<DIV><SPAN class=500520217-13122006><FONT face=Arial 
size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=500520217-13122006><FONT face=Arial size=2>The basic notion is 
that I have an object graph consisting of relationships of varying 
multiplicity.&nbsp; For various reasons I wish to introduce "effective dates" 
into the database.&nbsp; The documented Filter example of Employee and 
Department pretty much illustrates the idea.&nbsp; Lets say that at any given 
time, an Employee belongs to one Department, and a Department has multiple 
employees (so Department has a&nbsp;one-to-many bidirectional relationship with 
Employee.)&nbsp; Employee contains a foreign key back to Department, which is 
the canonical way to represent one-to-many relationships in the database - by 
putting a foreign key on the "many" side.</FONT></SPAN></DIV>
<DIV><SPAN class=500520217-13122006><FONT face=Arial 
size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=500520217-13122006><FONT face=Arial size=2>Over time,&nbsp;an 
employee can move between departments, so without considering time the 
relationship between Employee and Department is many-to-many.&nbsp; Note that I 
don't actually need a many-to-many join table here: Employee still contains an 
FK back to Department, and a given Employee ID now appears multiple times in the 
Employee table with non-overlapping&nbsp;"effective date" time intervals.&nbsp; 
At particular point in time, only ONE Employee row is 
effective.</FONT></SPAN></DIV>
<DIV><SPAN class=500520217-13122006><FONT face=Arial 
size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=500520217-13122006><FONT face=Arial size=2>I only care about 
the relationships that exist at particular points in time.&nbsp; Therefore, I 
wish to apply a Filter that *I know* will always produce a one-to-many 
relationship between Department and Employee.&nbsp; Steve's comment suggests 
that this is a misapplication of "Filter" - because to assume that Filter will 
slice the one-to-many relationship (at a single point in time) out of the 
many-to-many relationship that is actually stored in the database would be using 
Filters to change multiplicity, and that is apparently NOT the 
intent.</FONT></SPAN></DIV>
<DIV><SPAN class=500520217-13122006><FONT face=Arial 
size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=500520217-13122006><FONT face=Arial size=2>Fine:&nbsp; so 
forget Filters.&nbsp; Is there another way to get this same effect?&nbsp; I know 
one way:&nbsp; I can create views that reproduce the "full" object graph at each 
point in time that is of interest.&nbsp; Those views will have the correct 
one-to-many (or one-to-one) relationships in them. I could then map the views 
with Hibernate.&nbsp; The downside here is, I *also* need to map the "current 
time" of the real underlying tables, so that I can manipulate them to write 
updates.&nbsp; That means I need essentially two mappings of the same set of 
objects, which sounds like more work.</FONT></SPAN></DIV>
<DIV><SPAN class=500520217-13122006><FONT face=Arial 
size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=500520217-13122006><FONT face=Arial size=2>The "Filter" concept 
seems so close to what I want...&nbsp;&nbsp;If Entity-level Filters are ALWAYS 
applied to generated SQL it seems like this would work, at least if I always 
enable the Filter before doing any operations involving timesliced 
entities.&nbsp; If autoenabled Filters were present (per ANN-433) it seems like 
the solution would be even sweeter.</FONT></SPAN></DIV>
<DIV><SPAN class=500520217-13122006><FONT face=Arial 
size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=500520217-13122006><FONT face=Arial size=2>Has anyone had REAL 
experience using timeslicing (effective dates, etc) in the database and mapping 
the single-point-in-time results with Hibernate?&nbsp; I've seen this pattern in 
several databases in my career - although typically it seems to appear in 
warehouse environments more than in production databases..;</FONT></SPAN></DIV>
<DIV><SPAN class=500520217-13122006><FONT face=Arial 
size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=500520217-13122006><FONT face=Arial 
size=2>-ed</FONT></SPAN></DIV>
<DIV><SPAN class=500520217-13122006><FONT face=Arial 
size=2></FONT></SPAN>&nbsp;</DIV></BODY></HTML>