首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >basic attributes java.sql.Blob的问题

basic attributes java.sql.Blob的问题
EN

Stack Overflow用户
提问于 2009-07-20 14:07:12
回答 3查看 5.1K关注 0票数 1

我有这个代码

代码语言:javascript
复制
@Entity
@Table(name = "picture")
public class Picture implements Serializable {
    @Id
    @Column(name = "id")
    @GeneratedValue
    private int id;
    @Column(name = "format", length = 8)
    private String format;

    @Basic(fetch = FetchType.LAZY)
    @Column(name = "context", nullable = true, columnDefinition="mediumblob")
    @Lob
    private java.sql.Blob myBlobAttribute; // protected accessor and modifier

    @ManyToOne(fetch = FetchType.EAGER)
    @JoinColumn(name = "branch_fk", referencedColumnName = "id", nullable = false)
    private Branch branch;
//Some setter and getter

我使用NetBeans6.7,在这个Ide中,它在(private java.sql.Blob myBlobAttribute;)行显示错误,但代码运行时,它会在我的数据库中生成图片表!这是一个真正的错误还是只是电子通知,我必须如何解决它?错误消息为:

代码语言:javascript
复制
basic attributes can only be of the following types: java primitive types,wrapper of primitive types, String, java.math.bigInteger, java.math.BigDecimal, java,util.Date, java.util.Calendar, java.sql.Data, java.sql.TimeStamp, byte[], Byte[], char[], Character[], enums, or any Serializable type
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-07-20 16:57:53

您的属性类型是java.sql.Blob,它是一个接口。

首先,为什么?它不应该是一个字节数组(想必这就是你存储图像的地方)?

其次,这就是为什么NetBeans会抱怨--当你试图从这个表中读取数据时,Hibernate也会抱怨--他们无法知道要创建什么样的实际类型来将数据放入你的字段。

票数 1
EN

Stack Overflow用户

发布于 2009-07-20 20:07:19

NetBeans生成此警告的原因是,在使用java.sql.Blob时,您应该只使用@Lob注解,而不是@Basic。

然而,在运行时,通过忽略@Basic注释并认识到列实际上是一个LOB,您的JPA实现听起来像是在“帮助您”。这就是你的代码工作的原因。不同的JPA实现可能会失败,或者以某种方式表现不同。

票数 2
EN

Stack Overflow用户

发布于 2009-07-20 14:31:54

问题出现在前面了吗?

代码语言:javascript
复制
@Lob

也许应该是@Blob

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1153793

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档