2016-07-26 10 views
0

Grailsアプリケーションで別の問題が発生しています。私は以下のようにSite_Menuテーブルを作成して設定しました。コントローラの機能にアクセスしようとすると、テーブルが見つからないというエラーが表示されます。私は以下の私のコードを提供します。Hibernateがデータベースファースト開発でテーブルを見つけることができません

CREATE TABLE `Site_Menu` (
    `ID` bigint(20) NOT NULL AUTO_INCREMENT, 
    `MenuDisplay` varchar(100) NOT NULL, 
    `MenuLink` varchar(256) NOT NULL, 
    `MenuTarget` varchar(25) DEFAULT NULL, 
    `MenuSortOrder` int(11) NOT NULL, 
    PRIMARY KEY (`ID`) 
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8; 

INSERT INTO Site_Menu (MenuDisplay, MenuLink, MenuTarget, MenuSortOrder) 
VALUES ('Home Page', 'index.html', null, 1); 
INSERT INTO Site_Menu (MenuDisplay, MenuLink, MenuTarget, MenuSortOrder) 
VALUES ('About the BPO Elks', 'aboutelks.html', null, 2); 
INSERT INTO Site_Menu (MenuDisplay, MenuLink, MenuTarget, MenuSortOrder) 
VALUES ('Drug Awareness Program', 'dap.html', null, 3); 
INSERT INTO Site_Menu (MenuDisplay, MenuLink, MenuTarget, MenuSortOrder) 
VALUES ('Elks National Fund', 'enf.html', null, 4); 
INSERT INTO Site_Menu (MenuDisplay, MenuLink, MenuTarget, MenuSortOrder) 
VALUES ('G.U.M.B.O. Games', 'majorproject.html', null, 5); 
INSERT INTO Site_Menu (MenuDisplay, MenuLink, MenuTarget, MenuSortOrder) 
VALUES ('Louisiana Elks Fund', 'lef.html', null, 6); 
INSERT INTO Site_Menu (MenuDisplay, MenuLink, MenuTarget, MenuSortOrder) 
VALUES ('Scholarships', 'scholarships.html', null, 7); 
INSERT INTO Site_Menu (MenuDisplay, MenuLink, MenuTarget, MenuSortOrder) 
VALUES ('Veterans Services', 'vavs.html', null, 8); 
INSERT INTO Site_Menu (MenuDisplay, MenuLink, MenuTarget, MenuSortOrder) 
VALUES ('About Us', 'aboutus.html', null, 9); 
INSERT INTO Site_Menu (MenuDisplay, MenuLink, MenuTarget, MenuSortOrder) 
VALUES ('Our Facilities', 'facilities.html', null, 10); 
INSERT INTO Site_Menu (MenuDisplay, MenuLink, MenuTarget, MenuSortOrder) 
VALUES ('Lodge Officers & Committee Chairs', 'officers.html', null, 11); 
INSERT INTO Site_Menu (MenuDisplay, MenuLink, MenuTarget, MenuSortOrder) 
VALUES ('Contact Us', 'contactus.html', null, 12); 

COMMIT; 

私は自分のドメインモデルを持っているように:コントローラがどのように見える

package plaquemineelks 

class SiteMenu { 

    Long id 

    String title 
    String link 
    String target 
    Integer sortOrder 

    static constraints = { 
     title (blank: false) 
     link (blank: false) 
     sortOrder (blank: false) 
    } 

    static mapping = { 
     table: "Site_Menu" 
     id column: "ID" 
     title column: "MenuDisplay" 
     link column: "MenuLink" 
     target column: "MenuTarget" 
     sortOrder column: "MenuSortOrder" 
     version false 
    } 
} 

package plaquemineelks 

class SiteMenuController { 

    def index() { } 

    def getMenu() { 
     var results = SiteMenu.findAll() 

     render(contentType: 'text/json') {[ 
      'results': results, 
      'status': results ? "OK" : "Nothing present" 
     ]} 
    } 
} 

私が手にエラーが読み込ま:

URI /PlaquemineElks/SiteMenu/getMenu クラス com.my私は、テーブルとクラスの名前を変更しようとしている

テーブル「PlaquemineElks.site_menu」が存在しませんsql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException メッセージは、私はすべてを再作成しました。私のカレンダーのクラスとコントローラーはうまく動作しますが、なぜこの問題が私に問題をもたらしていますか?

この問題と私の最後の支援に感謝します。

答えて

1

official docsに基づか、代わりに:

static mapping = { 
    table: "Site_Menu" 
    ... 
} 

使用:

static mapping = { 
    table name: "Site_Menu" 
    ... 
} 

または

static mapping = { 
    table "Site_Menu" 
    ... 
} 
+0

を私はそれを逃したか分かりません。ありがとう。あなたは私が見つけた私のコントローラーの別のエラーを見逃しました。私はdefの代わりにvarで変数を定義しました。私はあまりにも多くのJavaScriptをやっています。 –

関連する問題