0

既存のデータベース テーブル (SQL Server 2008 R2) からデータを返すのに問題があります。データベースに正常に認証して接続できます。特定のテーブルにマップしようとしたモデルを作成しました。次に、テストで行数を返そうとすると、行数は常に 0 を返します。おそらく理解できないと思います。 Play/Ebean データベース接続のしくみ。現在、私は以下を持っています:

モデル - Data.java:

package models;

import javax.persistence.*;

import play.db.ebean.*;

@Entity
@Table(name="someTable")  
public class Data extends Model {

    private static final long serialVersionUID = 1L;

    @Id
    public int someKey;

    public String someCol;

    public static Finder<Integer,Data> find = new Finder<Integer,Data>( Integer.class, Data.class );

}

コントローラー - Index.java

package controllers;

import java.util.*;
import models.Data;
import play.mvc.*;

public class Index extends Controller {

    static int rowCount = Data.find.getMaxRows();

    public static Result index() {
        Result res = ok(rowCount);
        return res;
    }
}

Application.conf (関連スニペット):

db.default.driver=net.sourceforge.jtds.jdbc.Driver
db.default.url="jdbc:jtds:sqlserver://server.domain.local/someDB;instance=SQL"
db.default.user=someUser
db.default.password="password"

evolutionplugin=disabled

ebean.default="models.*"

私は Evolutions がどのように機能するかを理解しているとは言いませんが、SQL でのデータベース開発作業、つまり DDL とスキーマの作成/変更を別々に行っています。

どんな助けでも大歓迎です。

ありがとう

4

1 に答える 1

5

あなたがしたいことはfindRowCount()、クエリが影響する行の数を返すことによって行われます。基本的にCOUNT(*).

getMaxRows()は、( MySQL などで)setMaxRows(int)クエリによって返される行数の制限と同等です。LIMIT

于 2013-03-15T00:43:56.123 に答える