2012-12-30 2 views
1

Mes entités sont: UserShoppingList, produit et par catégorie comme suit:Play 2 modèle comment accéder à un membre de l'entité de la liste de type

package models; 

import java.util.*; 

import play.db.ebean.*; 
import play.data.validation.Validation; 
import play.data.validation.Constraints.*; 

import javax.persistence.*; 

import com.avaje.ebean.Ebean; 

/** 
* Entity managed by Ebean 
*/ 


@Entity 
public class UserShoppingList extends Model{ 

     @Id 
     public Long id; 

     @Required 
     public String listName; 

     @ManyToOne 
     public User user; 

     @ManyToMany 
     public List<Product> products = new ArrayList<Product>(); 

     //getters and setters 

//(I have included them, not shown here) 

package models; 

import java.util.*; 

import play.db.ebean.*; 
import play.data.validation.Constraints.*; 
import javax.persistence.*; 

/** 
* Product entity managed by Ebean 
*/ 

@Entity 
public class Product extends Model{ 
    @Id 
    public Long Id; 

    @ManyToOne 
    public Category category; 

    @Required 
    public String brandName; 

    @Required 
    public String productName; 


    // -- Queries 

    public static Model.Finder<Long,Product> find = new Model.Finder(Long.class, Product.class); 

package models; 

import java.util.List; 

import javax.persistence.*; 

import play.db.ebean.*; 
import play.data.validation.*; 
import play.db.jpa.*; 

/** 
* Category entity managed by JPA 
*/ 
@Entity 

public class Category { 
    @Id 
    public Long id; 


    @Constraints.Required 
    public String categoryName; 

    // --getters and setters 

Mon modèle:

@(shoppinglist: List[models.Product], categorylist: List[Category], 
userShoppingListsForm: Form[models.UserShoppingList]) 

@import helper._ 


@main("Shopping list products") { 

    var productlist = shoppinglist.getProducts() 

    <h1>Shopping List</h1> 


    @for(c <- categorylist){ 

    <ul> 

      <li class = "categoryrow">@categorylist.getCategoryName()</li> 



      @for(p <- productlist) { 


      <ul> 
       <li class="productcolumn"> 
        @p.getBrandName() 
       </li> 

       <li class="productcolumn"> 
        @p.getProductName() 
       </li>    

       <li class="command"> 
        id = @p.getId()! 
        @form(routes.ShoppingLists.deleteProduct(id)) { 
        <input type="submit" value="Delete"> 
        } 
       </li> 

      </ul> 

      } 



     </ul> 

     } 



     <h2>Add a product to list</h2> 

     @form(routes.ShoppingLists.newUserShoppingList()) { 

      @inputText(userShoppingListsForm("listName")) 

      <input type="submit" value="Create"> 

     } 



} 

J'obtiens l'erreur suivante: Quelqu'un peut-il me suggérer une meilleure façon de créer un modèle pour Java 2 Play Framework pour accéder à la base de données? y membefrs qui sont eux-mêmes des listes (exemple: produits dans "UserShoppingList" s'il vous plaît?

Toute aide grandement appréciée. Merci un million

+0

Pour demander un suivi -up question, vous devriez l'ajouter comme un commentaire ci-dessous la réponse et l'éditer dans votre question originale. Merci! – irrelephant

Répondre

0

Vous voulez utiliser un getter pour l'élément de liste, mais vous essayez de l'utiliser sur l'ensemble List

C'est probablement bonne solution:

<li class = "categoryrow">@c.getCategoryName()</li> 
+0

Merci beaucoup. Mon problème principal est l'accès aux membres de l'entité qui sont de type liste à partir du modèle. voir code @for (p <- productlist) {donner une erreur: non trouvé: value productlist. Je l'avais défini comme "\t var productlist = shoppinglist.getProducts()" dans le modèle. – user1938501

Questions connexes