当前位置: 首页 > 面试题库 >

JPA:如何将字符串保留到数据库字段中,键入MYSQL Text

蒋硕
2023-03-14
问题内容

要求是用户可以写一篇文章,因此我Textcontentmysql数据库中的字段选择类型。我如何转换Java StringMySQL Text

干得好 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
}

在我的MYSQL数据库中,content类型为Text。我希望会有这样的东西java.sql.Text,因为这java.sql.Blob是一个实际的类型,但是可惜的是,这并不存在


问题答案:

由于您使用的是JPA,因此请使用Lob注释(和可选的Column注释)。这是JPA规范对此的说明:

9.1.19吊球注释

Lob注释指定持久性属性或字段应保持为一个大型对象到数据库支持的大对象类型。可移植应用程序Lob在映射到数据库Lob类型时应使用
注释。Lob注释可以与Basic注释结合使用
。Lob可以是二进制或字符类型。Lob类型是从持久性字段或属性的类型推断出来的,除了基于字符串和字符的类型外,默认为Blob。

因此,声明如下:

@Lob 
@Column(name="CONTENT", length=512)
private String content;

参考文献

  • JPA 1.0规范:
    • 第9.1.19节“ Lob注释”


 类似资料:
  • 让我们成为这个 JSON 字符串: 假设是这个类: 如何将此 JSON 字符串转换为 列表? 如果我做了: 它返回<code>Object</code>的列表,而不是<code>MyObject</code>的列表

  • 问题内容: 我想设计一个具有String []属性的实体类。这个String Array总是有两个值,我不希望Hibernate(或JPA)为此创建一个额外的表,而是直接将这两个String值嵌入到表中。这有可能吗? 问题答案: 如果总是存在两个值,则可以使用getter / setter和instance变量。您确实可以选择使用映射实例变量还是属性。 否则请看实体。精神上的东西

  • 问题内容: 我似乎在Hibernate中映射列表时遇到问题。在我们的项目中有一类用含有类与含有。 Hibernate 是否可以使用注释进行映射?我的意思是,因为它没有注释? 问候 问题答案: 用途: 资料来源: 7.2.3。基本类型和可嵌入对象的集合

  • 我想用自动递增的id(1,2,3…等)将多个数据保存到数据库中,而不是保存在同一列中。用户可以动态添加输入字段,最后单击submit按钮,以不同的id(自动递增的id)将数据保存到数据库中。 我的js生成用户想要的输入字段 形式: 路线: 控制器: 但它只在数据库中保存一个输入字段值。任何能帮助我的人。

  • 我需要你的帮助。我试图在没有反序列化的情况下找到解决方案,但我什么也没找到。如果你能帮我就好了...所以我有了下面的JSON文件 谢谢你的时间和帮助。 我有以下错误: