Ich versuche, Wert einer Spalte mit Spring-JPA zu aktualisieren, Werte sind Emoji/Smilies. aber immer Fehler sagen java.sql.BatchUpdateException: Falsche String-Wert: '\ xF0 \ x9F \ x98 \ x84 \ xF0 \ x9F ...' für Spaltecom.mysql.jdbc.MysqlDataTruncation: Daten abgeschnitten: Daten zu lang für Spalte 'aboutMeText' in Zeile 1
Hier ist die Verbindung URL-
jdbc.url=jdbc:mysql:localhost:3306/woo?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&connectionCollation=utf8mb4_unicode_ci&characterSetResults=UTF-8
Hier ist der aufrufende Code
userProfile.setAboutMeText("\uD83D\uDE04\uD83D\uDC68\u200D\u2764\uFE0F\u200D\uD83D\uDC8B\u200D\uD83D\uDC68\uD83D\uDE02\uD83D\uDE20");
Hier ist die Einheit
@Entity
public class UserProfile implements Serializable {
@Column(length = 1000)
private String aboutMeText;
@Id
private Long id;
public Long getId() {
return id;
}
public void seId(Long id) {
this.id = id;
}
public String getAboutMeText() {
return JsonEscape.unescapeJson(aboutMeText);
}
public void setAboutMeText(String aboutMeText) {
this.aboutMeText = JsonEscape.escapeJson(aboutMeText);
}
und
hier sind die kompletten Fehler:
HTTP Status 500 - Request processing failed; nested exception is org.springframework.dao.DataIntegrityViolationException: Data truncation: Data too long for column 'aboutMeText' at row 1; SQL [n/a]; nested exception is org.hibernate.exception.DataException: Data truncation: Data too long for column 'aboutMeText' at row 1</h1>
<div class="line"></div>
<p>
<b>type</b> Exception report
</p>
<pre>org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.dao.DataIntegrityViolationException: Data truncation: Data too long for column 'aboutMeText' at row 1; SQL [n/a]; nested exception is org.hibernate.exception.DataException: Data truncation: Data too long for column 'aboutMeText' at row 1
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:981)
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:871)
javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:845)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:77)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
Ich habe versucht, und überprüfte verschiedene Beiträge auf Stackoverflow, Stack etc .. und führte einige Änderungen, aber immer noch nicht in der Lage, das Problem zu lösen.
Ändern der Sortierung zu utf8_unicode_ci ... [Aktivieren Sie diese] (http://Stackoverflow.com/a/20431999/4117061) und [diese] (http://Stackoverflow.com/a/10959780/4117061) –
vorher Es war utf8_unicode_ci, aber ich bekam den gleichen Fehler, also änderte ich es in utf8mb4_unicode_ci –
Ist es eine binäre Daten, die Sie in dieser Spalte speichern? Dann sollte nicht Byte [] anstelle von String mit Blob-Typ sein? –