I figured it out. My fault. Forgot to put @Entity in the Person class!

One last question - I think PersonRequest should have a combination of
'person_id' and 'request_id' as its primary key, how can I do that?
Currently it has its own auto-numeric key but I think it's more correct to
use a composite key ...

Thanks again,
Bob


syg6 wrote:
> 
> Yup. I have all 3 classes in my hibernate.cfg.xml:
> 
> <mapping class="com.mycompany.app.model.Person"/>
> <mapping class="com.mycompany.app.model.Request"/>
> <mapping class="com.mycompany.app.model.PersonRequest"/>
> 
> I also tried deleting PersonRequest from the hibernate.cfg.xml because I
> wasn't sure if it needed to be defined or not. But I got a different error
> so, I guess it does.
> 
> I'll keep trying ...
> 
> Thanks!
> Bob
> 
> 
> 
> Aled Rhys Jones wrote:
>> 
>> Yeah, you have to have a model for PersonRequest since you need to know
>> the
>> date object it holds.  Any other method and it's not many to many.
>> 
>> Regarding the error, have you defined all the models in the hibernate
>> configuration file (hibernate.cfg.xml)?
>> 
>> 
>> -----Original Message-----
>> From: syg6 [mailto:[EMAIL PROTECTED] 
>> Sent: 09 July 2007 14:08
>> To: [email protected]
>> Subject: [appfuse-user] RE: many-to-many with attribute ... again
>> 
>> 
>> Hmm ... well, ideally I was hoping to NOT have to create any extra model
>> classes. It seems I have to at least create one, right? The PersonRequest
>> class. Well, at least it seems I don't have to create the PersonRequestPK
>> class!
>> 
>> Anyway, I tried your example and when I run mvn test-compile
>> hibernate3:hbm2ddl I get an error:
>> 
>> AnnotationException: @OneToOne or @ManyToOne on
>> com.mycompany.app.model.PersonRequest.person references an unknown
>> entity:
>> com.mycompany.app.model.Person
>> 
>> Both Person and Request exist ... Both have the following annotations:
>> 
>> private Long id;
>>     
>> @Id @GeneratedValue(strategy = GenerationType.AUTO) 
>> public Long getId() {
>>   return id;
>> }
>> 
>> I am not sure what the problem is ... but then I am not an Annotations or
>> Hibernate expert. I'll keep trying. And further help much appreciated!
>> 
>> Cheers,
>> Bob
>> 
>> 
>> 
>> 
>> Aled Rhys Jones wrote:
>>> 
>>> Hi Bob
>>> 
>>> Ok then, Yes. :-)
>>> 
>>> http://www.hibernate.org/hib_docs/annotations/reference/en/html_single/
>>> 
>>> I've got the same scenario in my app.
>>> 
>>>  
>>> 
>>> Example Request model:
>>> 
>>> @Entity 
>>> 
>>> public class Request {
>>> 
>>>     
>>> 
>>>       private List<PersonRequest> personRequests;
>>> 
>>>       ......
>>> 
>>>     
>>> 
>>>       @OneToMany(mappedBy="request")
>>> 
>>>       @OrderBy("date")
>>> 
>>>       public List<PersonRequest> getPersonRequests () {
>>> 
>>>             return personRequests;
>>> 
>>>       }
>>> 
>>>       .....
>>> 
>>> }
>>> 
>>>  
>>> 
>>> Example Person model:
>>> 
>>> @Entity
>>> 
>>> public class Person {
>>> 
>>>       private List<PersonRequest> personRequests;
>>> 
>>>       ......
>>> 
>>>     
>>> 
>>>       @OneToMany(mappedBy="person")
>>> 
>>>       @OrderBy("date")
>>> 
>>>       public List<PersonRequest> getPersonRequests () {
>>> 
>>>             return personRequests;
>>> 
>>>       }
>>> 
>>>       .....
>>> 
>>> }
>>> 
>>>  
>>> 
>>> Example PersonRequest model:
>>> 
>>> @Entity
>>> 
>>> public class PersonRequest:
>>> 
>>>       private Person person;
>>> 
>>>       private Request request;
>>> 
>>>       .....
>>> 
>>>       @ManyToOne
>>> 
>>>       @JoinColumn(name="person_id")
>>> 
>>>       public Person getPerson(){
>>> 
>>>             return person;
>>> 
>>>       }
>>> 
>>>  
>>> 
>>>       @ManyToOne
>>> 
>>>       @JoinColumn(name="request_id")
>>> 
>>>       public Request getRequest(){
>>> 
>>>             return request;
>>> 
>>>       }
>>> 
>>>       .......
>>> 
>>> }
>>> 
>>>  
>>> 
>>> You may want to add details about cascading and the like.
>>> 
>>> You'll obviously need to put annotations on your getId method's so
>>> hibernate
>>> know to use the id fields as primary keys.
>>> 
>>> Just add in the other fields such as description as normal.
>>> 
>>> Hope this helps.  
>>> 
>>>  
>>> 
>>> Cheers
>>> 
>>> Aled
>>> 
>>>       
>>> 
>>>  
>>> 
>>> -----Original Message-----
>>> From: syg6 [mailto:[EMAIL PROTECTED] 
>>> Sent: 09 July 2007 12:18
>>> To: [email protected]
>>> Subject: [appfuse-user] many-to-many with attribute ... again
>>> 
>>>  
>>> 
>>>  
>>> 
>>> Hello all.
>>> 
>>>  
>>> 
>>> I had this problem about a year ago and just couldn't get Hibernate and
>>> 
>>> XDoclet to play nice. Basically I have this:
>>> 
>>>  
>>> 
>>> Request
>>> 
>>> id
>>> 
>>> description
>>> 
>>>  
>>> 
>>> Person
>>> 
>>> id
>>> 
>>> name
>>> 
>>>  
>>> 
>>> PersonRequest
>>> 
>>> idPerson
>>> 
>>> idRequest
>>> 
>>> date 
>>> 
>>>  
>>> 
>>> And I would like to know how to do with Annotations. The last time I
>>> wound
>>> 
>>> up hand-hacking the hibernate mapping files and creating two
>>> intermediate
>>> 
>>> 'composite' classes -- let's call them PersonRequest and PersonRequestPK
>>> -- 
>>> 
>>> and having to do all of the DAO by hand.
>>> 
>>>  
>>> 
>>> Is there any way to do this auto-magically with Annotations?
>>> 
>>>  
>>> 
>>> Please say yes ...
>>> 
>>>  
>>> 
>>> Cheers,
>>> 
>>> Bob
>>> 
>>> -- 
>>> 
>>> View this message in context:
>>>
>> http://www.nabble.com/many-to-many-with-attribute-...-again-tf4048626s2369.h
>>> tml#a11499869
>>> 
>>> Sent from the AppFuse - User mailing list archive at Nabble.com.
>>> 
>>>  
>>> 
>>> ---------------------------------------------------------------------
>>> 
>>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>>> 
>>> For additional commands, e-mail: [EMAIL PROTECTED]
>>> 
>>>  
>>> 
>>> 
>>> 
>> 
>> -- 
>> View this message in context:
>> http://www.nabble.com/many-to-many-with-attribute-...-again-tf4048626s2369.h
>> tml#a11501267
>> Sent from the AppFuse - User mailing list archive at Nabble.com.
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>> 
>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>> 
>> 
>> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/many-to-many-with-attribute-...-again-tf4048626s2369.html#a11502757
Sent from the AppFuse - User mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to