java-Hibernate实体类中属性的映射

问题描述

Hibernate实体类中属性的映射

我的实体类的其中一个属性的类型是InputStream,映射文件中type要为什么?可以是mediumblob吗?

解决方案

hibernate实体类映射
hibernate 无主键的表映射实体类
2、Hibernate 实体类映射(两种形式)

解决方案二:

搞什么鬼,实体类的属性类型时InputStream???
难道不应该是byte[]吗?blob什么的也好……inputStream是一个流,它就不是用来储存数据信息的啊喂
如果有必要保存一个“从某个地方读取流”这样的信息,那就存储一个url或者String,取出来之后重新建立链接啦

解决方案三:

InputStream类型不是数据库支持的类型,实体类中定义为Blob/Clob才是,其对应的数据库类型Blob。
大数据类型java提供了java.sql.Blob类型,实体类定义为这个类型就可以了,它可以通过InputStream来创建的。

FileInputStream fis = new FileInputStream(path);
 Blob photo  = Hibernate.createBlob(fis);

Hibernate映射关系:

 <property name="photo" type="blob">
  <column name="photo" />
</property>  

映射类型还是blob,这个是对应的sql的类型的别名就是blob.

时间: 2024-11-03 18:51:52

java-Hibernate实体类中属性的映射的相关文章

【java】实体类中 Set&lt;对象&gt; 按照对象的某个字段对set排序

背景: User实体类 有个属性是 Set<PositionChange> 职位变更字段 如下:   PositionChange实体类  有个属性是positionStartDate   什么时候开始任职此职务的字段 现在有一个需求,想在查询出  User这个对象的时候 ,可以获取到 Set<PositionChange>中  用户最新任职的一条岗位记录,也就是展示当前用户所处的岗位信息. 但是,Set始终的无序的,想要取出Set中PositionChange的positionS

【java】实体类中 按照特定的字段 进行升序/降序 排序

背景:   实际页面上  所有的分值都是按照JSON格式存储在一个字符串中 存储在同一个字段中: {"ownPTotal":"10>0","ownOTotal":"8>0","ownTotal1":"18","ownTotal2":"80","ownTotal3":"20","ownTo

vb6实体类-Visual Basic 6.0精简版,如何在实体类中定义类属性?

问题描述 Visual Basic 6.0精简版,如何在实体类中定义类属性? 我想在类中定义类属性 玩家类代码 '玩家类 '名称Private Name As String'性别Private Sex As SexEnum'级别Private Level As Integer'当前级别分数Private LevelScore As Integer'总分Private SumScore As Integer'境界Private PlayerRealm As Realm'豆豆虫Private Pla

读取hibernate实体类关联的表名以及列名(注解方式)

问题描述 因为工作需要出现了这样的一个需求,某记录需要拷贝一条,以某条记录或某些记录为基础,只需要更改主键值(id)例如这样的语句:insert into table1 (id,field1,field2)select @id,field1,field2 where id = 1;以上以id为1的记录拷贝.由于我现在的语句拷贝可能比较多,而且实体类涉及到clob字段,所以hibernate效率可能会比较低.所以想使用sql语句,但是如果是写明了所有字段的sql语句就会造成以后有人更改了表结构这块

详解Java的MyBatis框架中SQL语句映射部分的编写_java

1.resultMapSQL 映射XML 文件是所有sql语句放置的地方.需要定义一个workspace,一般定义为对应的接口类的路径.写好SQL语句映射文件后,需要在MyBAtis配置文件mappers标签中引用,例如: <mappers> <mapper resource="com/liming/manager/data/mappers/UserMapper.xml" /> <mapper resource="com/liming/manag

原生sql hibernate-用原生sql查询 为什么实体类中存在该字段,但为什么还是报错列名无效

问题描述 用原生sql查询 为什么实体类中存在该字段,但为什么还是报错列名无效 这是dao层 ds = HibernateDataSource.getHibernateDataSource(); session = ds.getSession(); String sql1="SELECT CHANNEL_ID FROM JC_CHANNEL WHERE PARENT_ID='"+ channelId + "'"; SQLQuery sqlQuery1 = sessi

spring mvc-springmvc+springjdbc 实体类,表的映射关系

问题描述 springmvc+springjdbc 实体类,表的映射关系 如题.没用hibernate. 我的实体类和表的对应关系 我的属性和字段名称的对应关系. rowmapper我知道.但是公司要求用注解. 我自定义注解.公司说spring原生有. 到底是什么呢.怎么用呢. 解决方案 @Service,@Autowired,网上搜spring注解 解决方案二: @Service,@Autowired,网上搜spring注解

eclipse从数据库逆向生成Hibernate实体类

     做项目必然要先进行数据库表设计,然后根据数据库设计建立实体类(VO),这是理所当然的,但是到公司里做项目后,让我认识到,没有说既进行完数据库设计后还要再"自己"建立一变VO.意思是,在项目设计时,要么根据需求分析建立实体类,由正向生成数据库表:要么就先进行数据库表设计,再逆向生成实体类.没有说进行完任意一方的设计后再去花时间去自己匹配建立另一方的设计. 原因是: 1. 1.5倍工作量,浪费时间.(时间对公司来说很重要) 2. 无法保证两边映射一致.因为两边都是自己设计的,那么

orm-关于hibernate实体类ID自增长的问题

问题描述 关于hibernate实体类ID自增长的问题 一个Java web项目,实体ID是这样的:BEIJING00000001 自增长的 用的ORM是hibernate. 现在用的自增长只能这么增长:1 ,2,3,4... 不能自己补上的前面的部分. 必须在服务层给补上或去掉,很满帆,不知道hibernate有解决这个问题更简单的方案吗? 解决方案 可以考虑Hibernate主键的 自定义主键生成策略. 配置如下: 写一个com.XXX.XXX.MYIDGenerator实现id策略接口Id