javax.persistence这个包在哪个jar包中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javax.persistence这个包在哪个jar包中相关的知识,希望对你有一定的参考价值。

在javax.persistence.jar 参考技术A 的问题,中国学网通过互联网对javax.persistence这个包相关的解决方案进行了整理,用户详细问题包括:RT,我想知道:javax.persistence这个包在哪个jar包中,具体解决方案如下:

JPA中@javax.persistence.Lob注解有啥意义?

【中文标题】JPA中@javax.persistence.Lob注解有啥意义?【英文标题】:What is the significance of @javax.persistence.Lob annotation in JPA?JPA中@javax.persistence.Lob注解有什么意义? 【发布时间】:2015-06-13 04:53:06 【问题描述】:

什么时候应该在 JPA 中使用 @javax.persistence.Lob 注释?这个注解可以注解哪些数据类型?

【问题讨论】:

【参考方案1】:

@javax.persistence.Lob 表示带注释的字段应在数据库中表示为 BLOB(二进制数据)。

您可以使用此注解来注解任何Serializable 数据类型。 在 JPA 中,在持久化(检索)后,字段内容将使用标准 Java 序列化进行序列化(反序列化)。

@Lob 的常见用途是在 Entity 中注释 HashMap 字段以存储一些未映射到 DB 列的对象属性。这样,所有未映射的值都可以以二进制表示形式存储在数据库中的一列中。当然,付出的代价是,由于它们以二进制格式存储,因此无法使用 JPQL/SQL 进行搜索。

【讨论】:

我们可以使用@Lob 来插入一些数据(一些带有很多图像的字符串)吗? 对于使用 SQL 查询创建的现有表,@Lob 有意义吗?当人们说“支持大型对象”时,我不明白幕后发生了什么。 @Zeilu【参考方案2】:

根据:https://docs.oracle.com/javaee/7/api/javax/persistence/Lob.html

@Lob 指定持久属性或字段应作为大对象持久保存到数据库支持的大对象类型。

@javax.persistence.Lob 表示注释字段应该是 在数据库中表示为 BLOB(二进制数据)。

我想在数据库中它不仅可以是二进制数据,还可以是基于字符的数据。 因为我们可以有 BLOB 和 CLOB。以下是java代码中的示例:

@Lob
@Column(name = "CHARS", columnDefinition = "CLOB")
private String chars;`

@Lob
@Basic(fetch = FetchType.LAZY)
@Column(name = "DATA", columnDefinition = "BLOB", nullable = false)
private byte[] data;

【讨论】:

在这种情况下,获取类型 Lazy 不起作用,因为您正在使用 byte[] 来存储数据。 没错! @Lob 用于映射Binary OR large character objects! 对于使用 SQL 查询创建的现有表,@Lob 有意义吗?当人们说“支持大型对象”时,我不明白幕后发生了什么。 @levrun

以上是关于javax.persistence这个包在哪个jar包中的主要内容,如果未能解决你的问题,请参考以下文章

javax.persistence这个包在哪个jar包中解决方案

Hibernate Annotations 注解

javax.persistence,这个包有啥用

JPA中@javax.persistence.Lob注解有啥意义?

javax.persistence.EntityManager SQL 注入

考虑在你的配置中定义一个“javax.persistence.EntityManager”类型的bean