Voraussetzung ist, dass der Benutzer einen Artikel schreiben kann, daher wähle ich den Typ Text
für das content
Feld in der MySQL-Datenbank. Wie kann ich umwandeln Java String
inMySQL Text
Bitte schön Jim Tough
@Entity
public class Article implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private Long userId;
private String title;
private String content;
private Integer vote;
//Constructors, setters, getters, equals and hashcode
}
In meiner MYSQL-Datenbank content
ist Typ Text
. Ich hatte gehofft, dass es so etwas geben würde java.sql.Text
, da java.sql.Blob
es sich um einen tatsächlichen Typ handelt, aber leider existiert dieser nicht
@Lob
Plus-@Column
Annotation in einem String-Feld "falscher Spaltentyp, erwarteter Langtext, aber Spaltentyp ist Text". Aber das Problem ist gelöst, als ich@Column(columnDefinition = "text")
@Lob
und zu kombinieren@Column(length=512)
? Warum nicht einfach glücklich sein mit@Lob
? Beides macht bei der Verwendung von Hibernate JPA MySQL keinen Unterschied. Beides führt zum MySQL-Feldtyplongtext
.@Lob
Anmerkung funktionierte bei mir nicht. Hat aber@Column(length=8192)
super geklappt und mein Problem gelöst.Mit
@Lob
lande ich immer mit einemLONGTEXT
in MySQL.Um es zu bekommen,
TEXT
erkläre ich es so (JPA 2.0):@Column(columnDefinition = "TEXT") private String text
Finden Sie dies besser, da ich direkt auswählen kann, welchen Texttyp die Spalte in der Datenbank haben soll.
Für
columnDefinition
sie ist auch gut lesen diese .BEARBEITEN: Bitte beachten Sie den Kommentar von Adam Siemions und überprüfen Sie die von Ihnen verwendete Datenbank-Engine, bevor Sie sich bewerben
columnDefinition = "TEXT"
.quelle
für mysql 'text':
@Column(columnDefinition = "TEXT") private String description;
für mysql 'longtext':
@Lob private String description;
quelle