0

私のデータモデル:

public class Tour extends Model {    
    @Id
    public Integer id;

    @ManyToOne
    public Sport sport;

    @OneToOne(mappedBy="genericTour")
    FootballTour footballTour;

    @OneToOne(mappedBy="genericTour")
    TennisTour tennisTour;

    public static Finder<Integer, Tour> find(){
        return new Finder<Integer,Tour>(Integer.class,Tour.class);
    }
}

public class FootballTour extends Model {

    @Id
    public Integer id;

    @OneToOne
    Tour genericTour;

    public static Finder<Integer, FootballTour> find(){
        return new Finder<Integer,FootballTour>(Integer.class,FootballTour.class);
    }

}

私のアクション(「footballTour」をフェッチしていることを示すためだけに):

  public static Result getToursBySportTag(String sportTag){

      Query query = Tour.find().fetch("sport").fetch("footballTour");
      List<Tour> finedTours =  query.where().eq("tag", sportTag).findList();

      return ok(tours.render(finedTours));

  }

Scalaテンプレートで、footballTourフィールドのツアーにアクセスしたい:

@(tours: List[Tour])
@main("Football tours") {
<h1>Football tours List</h1>
<dl>
@for(tour <- tours) {
<dt>
<a href="@routes.Application.tour(tour.id)">
@tour.footballTour.id
</a>
</dt>
}
</dl>
}

そして、コンパイル時にエラーが発生します:

[エラー]1つのエラーが見つかりました[エラー]{file:/ C:/ Users / pc / prog /} prog / compile:compile:コンパイルに失敗しました[info] 1つのScalaソースをC:\ Users \ pc \ prog\targetにコンパイルしています\scala-2。9.1 \ classes ...[エラー]C:\ Users \ pc \ prog \ target \ scala-2.9.1 \ src_managed \ main \ views \ html \ tours.template.scala:37:クラスツアーの変数footballTourにアクセスできませんssed in models.Tour [error] "" ")、display(Seq Any)、format.raw / 8.11 /(" ""-"" ")、display(Seq Any)、format.raw / 8. 35 /( """ [エラー]

4

1 に答える 1

3

クラスのフィールドgenericTourはパブリックにする必要があります。FootballTour

public class FootballTour extends Model {

    @Id
    public Integer id;

    @OneToOne
    public Tour genericTour;  // <<<<< Here !!

    public static Finder<Integer, FootballTour> find(){
        return new Finder<Integer,FootballTour>(Integer.class,FootballTour.class);
    }

}

Java では、デフォルトで、指定されていない場合、フィールドはプライベートです。

于 2012-11-08T14:31:17.913 に答える