jap sql 保存_JPA:如何将String保存到数据库字段中,键入MYSQL Text

bd96500e110b49cbb3cd949968f18be7.png

The requirement is that the user can write an article, therefore I choose type Text for the content field inside mysql database. How can I convert Java String into MySQL Text

Here you go 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 my MYSQL database, content is type Text. I was hoping that there would be something like this java.sql.Text, since java.sql.Blob is an actual type, but sadly, that does not exist

解决方案

Since you're using JPA, use the Lob annotation (and optionally the Column annotation). Here is what the JPA specification says about it:

9.1.19 Lob Annotation

A Lob annotation specifies that a

persistent property or field should be

persisted as a large object to a

database-supported large object type.

Portable applications should use the

Lob annotation when mapping to a

database Lob type. The Lob annotation

may be used in conjunction with the

Basic annotation. A Lob may be

either a binary or character type. The

Lob type is inferred from the type of

the persistent field or property, and

except for string and character-based

types defaults to Blob.

So declare something like this:

@Lob

@Column(name="CONTENT", length=512)

private String content;

References

JPA 1.0 specification:

Section 9.1.19 "Lob Annotation"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值