5 Stimmen

Wie erstellt man ein Tinyint-Feld in einer Hibernate-Anmerkung?

Ich habe Problem bei der Erstellung von tinyint Feld in MySQL-Datenbank mit Hibernate.

Ich habe die Entity-Klasse wie folgt geschrieben

@Entität

@Table(name="tablename")

public class MyEntity {

private int id;

@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="id")
public int getId() {
    return id;
}

public void setId(int id) {
    this.id = id;
}

}

Und wenn ich MySQL überprüfen, id Feld immer am Ende mit Integer (11), wie mache ich es als TinyInt?

Für jede Antwort wären wir dankbar

5voto

Gennadiy Punkte 17077

Ich denke, es gibt mehrere Möglichkeiten, dies zu tun. Die erste ist, das Attribut columnDefinition der @Column-Annotation zu verwenden, um etwas wie dieses zu lesen:

@Column(name = "id", columnDefinition = "TINYINT")

Dies ist nicht datenbankübergreifend und passt nicht zu der Variablen selbst, die ein int ist. Hier kann ein Byte oder Short benötigt werden

Eine andere Möglichkeit ist die Verwendung der @Type-Annotation, wahrscheinlich mit org.hibernate.type.ByteType, da es einen TINYINT zu repräsentieren scheint ( Link zur Javadoc ).

Ich hoffe, das hilft.

0voto

kpolice Punkte 581

Können Sie versuchen, die Eigenschaft columnDefinition in der @Column-Annotation zu verwenden, um das SQL zu definieren, das Sie ausführen möchten, wenn Sie Ihr Schema anhand der Annotationen in Ihren Beans erstellen.

0voto

Aaron Zhao Punkte 31

Int in Byte oder Byte ändern, kein zusätzlicher Vermerk erforderlich

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X