2016-07-26 4 views
0

Ich stoße auf ein anderes Problem mit meiner Grails-Anwendung. Ich habe meine Site_Menu-Tabelle wie folgt erstellt und ausgefüllt. Wenn ich versuche, auf die Steuerungsfunktionen zuzugreifen, erhalte ich den Fehler, dass die Tabelle nicht gefunden werden kann. Ich werde meinen Code unten zur Verfügung stellen.Hibernate kann keine Tabelle in Database finden Erste Entwicklung

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; 

ich mein Domain-Modell haben wie:

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 
    } 
} 

Der Controller wie folgt aussieht:

package plaquemineelks 

class SiteMenuController { 

    def index() { } 

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

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

Der Fehler ich liest erhalten:

URI /PlaquemineElks/SiteMenu/getMenu Klasse com.my sql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException Nachricht Table ‚PlaquemineElks.site_menu‘ existiert nicht

habe ich versucht, die Tabelle und die Klasse umbenennen, neu erstellt ich alles. Meine Kalender-Klasse und Controller funktioniert gut, warum gibt mir dieser Probleme?

Danke für die Hilfe zu diesem Thema und meine letzte.

Antwort

1

Basierend auf official docs statt:

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

Verwendung:

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

oder

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

Ich habe keine Ahnung, wie ich das verpasst. Vielen Dank. Du hast einen weiteren Fehler in meinem Controller übersehen, den ich gefunden habe. Ich habe meine Variable mit var statt def definiert. Ich mache zu viel JavaScript. –