#24 ✓resolved
Erwan Loisant

Addition to documentation : YAML for bidirectional relationship

Reported by Erwan Loisant | October 5th, 2010 @ 11:56 AM | in 1.1

This is created to tack the below mailing list conversation, as suggested by Guillame.

The relevant part: (you may use the below classes from the attached file)

@Dirk. I can't thank enough, as I have been struggling with it. thanks for the detailed example. For further reference, I keep the example below.
2 notes
1. Used @Table(name = "user") annotation as User is a reserved word
in PostgreSql
2. I had to reverse the many to many mapping as I considered
Neighborhood as the owning entity
~~~~~~~~~ Code ~~~~~~~~~~~~ Neighborhood.java

package models;
import java.util.List;
import javax.persistence.*;
import play.db.jpa.Model;
@Entity public class Neighborhood extends Model {

public String name;
public City city;//bi-directional one-to-many, owning side 
public String tags; 
@ManyToMany  //owning side 
public List<User> users;



package models;
import java.util.;
import javax.persistence.
import play.db.jpa.Model;
@Entity @Table(name = "user") public class User extends Model {

public String name;
public String email; 
public String lang; 
public Date created; 
@ManyToMany(mappedBy="users") //inverse side of the relation 
public List<Neighborhood> neighborhoods;



package models;
import java.util.;
import javax.persistence.
import play.db.jpa.Model;
@Entity public class City extends Model {

public String name;
public String state; 
@OneToMany(mappedBy = "city", cascade = CascadeType.ALL) //bi-

directional one-to-many, inverse side

public List<Neighborhood> neighborhoods;




name:        Capital Federal
state:        Buenos Aires


name:   "John Smith"
email:   j...@john.com 
lang:    es 
created: 2007-01-01 
#neighborhoods: [coghlan, villalugano]


name:   "Frank Franken"
email:   fr...@frank.com 
lang:    en 
created: 2007-08-05 
#neighborhoods: [villalugano]


name:   Villa Lugano
city:   capitalfederal 
tags:   "shopping, cafes" 
users:  [john, frank]


name:   Coghlan
city:   capitalfederal 
tags:   "cafes, bars" 
users:  [john]

Imported from Launchpad: https://bugs.launchpad.net/play/+bug/611428

No comments found

Please Sign in or create a free account to add a new ticket.

With your very own profile, you can contribute to projects, track your activity, watch tickets, receive and update tickets through your email and much more.

New-ticket Create new ticket

Create your profile

Help contribute to this project by taking a few moments to create your personal profile. Create your profile »

<h2>Play framework</h2>

Play makes it easier to build Web applications with Java. It is a clean alternative to bloated Enterprise Java stacks. It focuses on developer productivity and targets RESTful architectures. Learn more on the <a href="http://www.playframework.org">http://www.playframework.org</a> website.<br><br>

<h2>Source code is hosted on github</h2>Check out our repository at <a href="http://github.com/playframework/play">http://github.com/playframework/play</a><br><br>

<h2>Contributing, creating a patch</h2> Please read the <a href="http://play.lighthouseapp.com/projects/57987/contributor-guide">contributor guide</a><br><br>

<h2>Reporting Security Vulnerabilities</h2> Since all bug reports are public, please report any security vulnerability directly to <em>guillaume dot bort at gmail dot com</em>.<br><br>

<h2>Creating a bug report</h2> Bug reports are incredibly helpful, so take time to report bugs and request features in our ticket tracker. We’re always grateful for patches to Play’s code. Indeed, bug reports with attached patches will get fixed far quickly than those without any.<br><br>

Please include as much relevant information as possible including the exact framework version you're using and a code snippet that reproduces the problem.<br><br>

Don't have too much expectations. Unless the bug is really a serious "everything is broken" thing, you're creating a ticket to start a discussion. Having a patch (or a branch on Github we can pull from) is better, but then again we'll only pull high quality branches that make sense to be in the core of Play.

People watching this ticket

Referenced by