程序员人生 网站导航

JPA 大文本

栏目:php教程时间:2015-05-27 08:15:47

         使用jpa也有很长1段时间了,其中的奥妙也只是用到了1点点,项目中不用到的知识也很少去想,真心是现用现学,这次遇到的问题是大文本,在数据库中的类型为TEXT,但是映照的时候该怎样做呢?!下面就来介绍1下吧:

         实话实说,在使用jpa的时候,大部份的属性数据类型都是string,我们也知道string映照到数据库最大长度为255,在mysql数据库中映照为varchar(255),如图所示:

     

       我们也看到了,如果我想保存1篇文章,单纯的用string类型的去映照,明显是没办法办到的,由于保存100多个汉字基本就会超越数据库的极限了。那末该怎样办呢?

       没错我们可使用@Lob注解,Lob适用于标注字段类型为ClobBlob的类型,Clob是长字符串类型,映照中实体类型可以为char[]Character[]、或String类型;Blob是字节类型,映照为实体中的类型为byte[]Byte[]、或实现了Serializable接口的类型。这两种类型的数据1般占用的内存空间比较大,1般设置为lazy加载。

@Column(name = "name", length = 50) private String name; @ManyToMany(cascade=CascadeType.MERGE,fetch=FetchType.EAGER,mappedBy="course",targetEntity = Clazz.class) private Set<Clazz> clazzs; /*@OneToMany(cascade=CascadeType.DETACH,fetch=FetchType.LAZY,targetEntity=People.class) @JoinColumn(name="peopleId" ,nullable=true)*/ private People people; @Lob private String describeLob; @Lob @Column(name = "testCommon" ,columnDefinition = "TEXT") private String describe ;

 

通过查询取得的数据,简单的实例就用json在页面显示了:


      现阶段遇到的问题都是由解决方案的。

------分隔线----------------------------
------分隔线----------------------------

最新技术推荐