问题背景
jpa如果直接映射mysql的text/longtext/tinytext类型到String字段会报错。需要设置一下@Lob
和@Column
。
@Lob
代表是长字段类型,默认的话,是longtext
类型,所以需要下面这个属性来指定对应的类型。
columnDefinition="text"
里面的类型可以随意改,后面mysql可能会有新的类型,只要是对应java的String类型,就可以在这里动态配置。
解决方案
@Data
@Entity
@Table(name="question")
public class Question {
@Id
@GeneratedValue
public int questionId;
//....省略其他字段
@Lob
@Column(columnDefinition="text")
public String explainStr;
public Date createTime;
}