• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Ron McLeod
  • Paul Clapham
  • Devaka Cooray
  • Tim Cooke
Sheriffs:
  • Rob Spoor
  • Liutauras Vilda
  • paul wheaton
Saloon Keepers:
  • Tim Holloway
  • Tim Moores
  • Mikalai Zaikin
  • Carey Brown
  • Piet Souris
Bartenders:
  • Stephan van Hulst

how to map one-to-one relation

 
Greenhorn
Posts: 23
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi All,

I have User and Department classes ,the relation from Department to User is one to one unidirectional(Department has head ,and User can be head of only
one Department).
I did some search and found that to do this mapping i must do the following

<many-to-one
name="head"
class="helper.User"
column="department_head"
unique="true"
/>

and that unique="true" will force the relation to be one to one.

is that true??

I tried that but it works as many Departments to the same user, i add new department to user who is already a head and it works fine.

if this mapping is wrong ,could any one please tell me how to do it?

Thanks

 
Author
Posts: 12617
IntelliJ IDE Ruby
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
If there's a real reason to not use a one-to-one mapping, that's the way to do it.

Here it looks like you're mapping from departments to a department head (user). That just means a department can have only one head, not that a user can't have more than one department.

To paraphrase Java Persistence in Action:

[...] you declare that a particular user can be referenced by at most one department, as a department head.

(Emphasis mine.) I translate that to mean that a department can have only one head, not that a user can't have multiple departments. But I might be misunderstanding what you perceive the symptom(s) of the problem(s) is.
 
Raghda Ismail
Greenhorn
Posts: 23
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
hi David ,

Thanks for your reply.
You did not misunderstand ,what you said is exactly what i mean:
" I translate that to mean that a department can have only one head, not that a user can't have multiple departments"

and my problem with using one to one mapping is that i am not able to fetch users eagerly with the departments
I tried using this mapping :

<one-to-one
name="head"
class="helper.User"
foreign-key="department_head" //this is the name of the foreign key column in departments table
fetch="join"
/>

is there any thing wrong with this mapping??

Thanks in advance
 
Raghda Ismail
Greenhorn
Posts: 23
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi every body ,

I am still having this problem.
could any body just have a look on the mapping and tell me if there is something wrong with it?

Thanks
 
To do a great right, do a little wrong - shakepeare. twisted little ad:
Gift giving made easy with the permaculture playing cards
https://coderanch.com/t/777758/Gift-giving-easy-permaculture-playing
reply
    Bookmark Topic Watch Topic
  • New Topic