| 

.NET C# Java Javascript Exception

GORM und MySQL: Reihenfolge der Felder ist zufällig?

Dies ist das Archiv des ehemaligen Forums zum Thema Groovy, Grails, Griffon und Bean Scripting Framework, welches unter groovy-forum.de existierte. Die neue Adresse des Groovy-Forums ist: http://codekicker.de/fragen/themen/groovy.


GORM und MySQL: Reihenfolge der Felder ist zufällig?

slyfox1972 - 07.04.2010 11:22
Hallo! Ich hab gerade ein kleines Problem, bei dem ich nicht weiterkomme...

Ich bin gerade dabei, OpenGeoDB in Grails zu integrieren, habe auch vor, das als Grails-Plugin zur Verfügung zu stellen.

OpenGeoDB ist eine Datenbank, mit Ländern von Deutschland und Umgebung, die Geodaten enthält...
Die Create-Befehle sind hier [fa-technik.adfc.de] vorhanden.

z.B. für die Tabelle geodb_coordinates ist der CREATE-Befehl dieser:

create table geodb_coordinates (
  loc_id               integer not null references geodb_locations,
  coord_type           integer not null check (coord_type=200100000),
  lat                  double precision,
  lon                  double precision,
  coord_subtype        integer,
  valid_since          date,
  date_type_since      integer,
  valid_until          date not null,
  date_type_until      integer not null
) TYPE=InnoDB CHARACTER SET utf8;

Meine passende Domain-Class dazu:

package groovy.org.grails.opengeodb

class Coordinate {
	int loc_type
	int coord_type
	double lat
	double lon
	int coord_subtype
	Date valid_since
	int date_type_since
	Date valid_until
	int date_type_until

	static constraints = {
		coord_type(nullable:false)
		lat(nullable:true)
		lon(nullable:true)
		coord_subtype(nullable:true)
		valid_since(nullable:true)
		date_type_since(nullable:true)
		valid_until(nullable:false)
		date_type_until(nullable:false)
	}

	static mapping = {
		table 'geodb_coordinates'
		version false
		columns {
			id column:'loc_id',type:'int'
			loc_type type:'int'
			coord_type type:'int'
			lat type:'double'
			lon type:'double'
			coord_subtype type:'int'
			valid_since type:'date'
			date_type_since type:'date'
			valid_until type:'int'
			date_type_until type:'date'
		}
	}
}

Grails erzeugt diese Tabelle:

+-----------------+---------+------+-----+---------+----------------+
| Field           | Type    | Null | Key | Default | Extra          |
+-----------------+---------+------+-----+---------+----------------+
| loc_id          | int(11) | NO   | PRI | NULL    | auto_increment |
| coord_type      | int(11) | NO   |     | NULL    |                |
| lon             | double  | NO   |     | NULL    |                |
| date_type_since | date    | NO   |     | NULL    |                |
| loc_type        | int(11) | NO   |     | NULL    |                |
| date_type_until | date    | NO   |     | NULL    |                |
| valid_since     | date    | YES  |     | NULL    |                |
| valid_until     | int(11) | NO   |     | NULL    |                |
| coord_subtype   | int(11) | NO   |     | NULL    |                |
| lat             | double  | NO   |     | NULL    |                |
+-----------------+---------+------+-----+---------+----------------+

Hier ist die Reihenfolge der Felder wild durcheinander, und - nur das Feld "valid_since" ist wirklich "nullable".
Es sollten aber auch die Felder lat, lon, coord_subtype und date_type_since nullable sein.

Wie kann ich die Reihenfolge der Felder in der DB definieren, und warum sind die genannten Felder nicht "nullable"?

Oder, ich muss Grails beibringen, dass die Tabelle bereits passend angelegt ist... es soll daran nichts ändern...

Gruß

Egon Schmid


Re: GORM und MySQL: Reihenfolge der Felder ist zufällig?

saurier - 07.04.2010 12:44
Zitat

Ich bin gerade dabei, OpenGeoDB in Grails zu integrieren, habe auch vor, das als Grails-Plugin zur Verfügung zu stellen.

Klingt gut!

Zitat

Wie kann ich die Reihenfolge der Felder in der DB definieren, und warum sind die genannten Felder nicht "nullable"?

Du benutzt primitive Datentypen (int) und die mag Hibernate meines Wissens nicht "nullable" machen. Versuche
es doch mal mit Integer. Außerdem passen die Typen in deinem mapping irgendwie nicht (date bzw. int), ist
das Absicht?
Die Reihenfolge ist wirklich seltsam. [Blödsinn an dieser Stelle entfernt :-)]

Vielleicht ist GRAG für das Projekt hilfreich.

Zitat

Oder, ich muss Grails beibringen, dass die Tabelle bereits passend angelegt ist... es soll daran nichts ändern...

Das geht natürlich auch.

Gruß, Christian


Stelle deine Groovy-Frage jetzt!


Diese Seite zeigt den Thread "GORM und MySQL: Reihenfolge der Felder ist zufällig?" der ehemaligen Webseite groovy-forum.de, welche durch einen Serverunfall zerstört wurde. codekicker.de hat viele Konversationen über die beliebte Programmiersprache Groovy und zugehörige Frameworks wie das Grails-Framework retten können.

Hast Du eine Frage zum Thema Groovy, Grails oder allgemein Java? Viele ehemalige groovy-forum.de Mitglieder beantworten dir auf codekicker.de deine Frage! Stelle jetzt eine Frage!

Viele weitere Diskussionen zu Grails und Groovy befinden sich auf der Threadübersicht des alten groovy-forum.de.