Try that and it should work. Cheers Aled
syg6 wrote:
Well, if I get rid of the @Id tag in PersonRequest I get this error: No identifier specified for entity: com.mycompany.app.model.PersonRequest And if I put an @Id tag on getPerson() and getRequest() I get this error: ...AnnotationException: mappedBy reference an unknown target entity property: com.mycompany.app.model.PersonRequest.request in com.mycompany.app.model.Request.personRequests Strange error. I have to look into how to do this, make a composite key, hopefully without using @Embedded or @Embeddable ... That would just complicate matters more ... Please let me know if you find out how to do this ... Cheers, Bob Aled Rhys Jones wrote:I'll have to check when I get home the exact way, but you definetly don't need a primary key, just the composite key of person_id and request_id. Not 100% sure, but I think when you build the appfuse project then the one to many and many to one annotations will do the id's for you. So all you need in the PersonRequest model is the getters and setters. Cheers Aled -----Original Message-----From: syg6 [mailto:[EMAIL PROTECTED] Sent: 09 July 2007 15:21To: [email protected] Subject: [appfuse-user] RE: RE: many-to-many with attribute ... again 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:08To: [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:@Entitypublic 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:18To: [email protected] Subject: [appfuse-user] many-to-many with attribute ... againHello 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 descriptionPerson id namePersonRequest idPerson idRequestdateAnd 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.html#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.html#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.h tml#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] --------------------------------------------------------------------- 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]
