hibernate
淘技术
专注于分享最前沿的技术干货,最热门的实用工具,最火爆的社区新闻!
展开
-
hibernate简介及原理
1.简介1.什么是框架?写程序,使用框架之后,帮我们实现一部分功能,使用功能即可以少写一些代码实现功能。2.什么是hibernate框架?hibernate(冬眠)在dao层对数据库进行crud操作,使用hibernate实现crud操作,hibernate的底层就是jdbc,hibernate对jdbc进行封装,使用了hibernate不需要写复杂的jdbc代码,也不需要写s原创 2017-06-08 15:01:35 · 514 阅读 · 0 评论 -
hibernate学习之实体类以及crud操
实体类的编写规则1.实体类的属性是私有的2.私有属性要使用公开的get,set方法3.要求实体类有属性作为唯一值(一般使用id值)4.实体类属性建议不使用基本数据类型,而是使用基本数据类型对应的包装类(1)八个基本数据类型的包装类-int ——Integer-char——Character-其他都是首字母大写比如 double——Double(2)比如表原创 2017-06-09 13:58:59 · 365 阅读 · 0 评论 -
hibernate绑定session
1.session类似jdbc的connection2.hibernate帮助我们实现与本地线程绑定session为了使单线程百分之百的是单线程,不受影响3.如何获取与本地线程session(1)在hibernate核心配置文件中配置 thread (2)调用sessionfactory中的方法 //提供一个方法返回与本地线程绑定的session publi原创 2017-06-09 16:44:14 · 630 阅读 · 0 评论 -
hibernate学习之检索策略
检索策略的概念1.hibernate检索测策略分为两种(1)立即查询:根据id查询,调用get方法,一调用就发送sql语句查询数据库数据 Session session = SessionFactoryUtil.GetSession(); Customer c = session.get(Customer.class, "4028802d5cc56d3b015cc56d3dc原创 2017-06-21 19:08:46 · 220 阅读 · 0 评论 -
hibernate三大查询所有对象
Query对象1.使用query对象,不需要写sql语句,但是写hql语句 (1)hql:hibernate query language ,hibernate提供查询语句,这个hql与普通sql语句很相似(2)hql和sql区别:sql语句是通过数据库表和字段进行操作,hql是通过实体类和属性进行操作2.查询所有hql语句(1)from 实体类名称3.Query原创 2017-06-09 17:05:27 · 3497 阅读 · 0 评论 -
Null value was assigned to a property of primitive type setter of com.sq.entity.Professor.comm
1.原因数据库字段有null值2.解决实体类属性使用封装类修饰,如:int的封装类Integer原创 2017-06-14 10:01:47 · 564 阅读 · 0 评论 -
references an unknown entity
注意实体类注解开发,需要在类上面添加注解@Entity原创 2017-07-06 10:52:19 · 620 阅读 · 0 评论 -
null value was assigned to a property of primitive type setter of原因急解决方法
实体类属性类型需要使用包装类,数据库的数据映射时,及时出现null值也可以映射,不然普通类型无法接受null值,会报错。原创 2017-07-07 12:01:30 · 205 阅读 · 0 评论 -
Criteria外键查询
1.由于外键在实体类中使用对象的形式表示,所以需要先获得外键对应实体类对象,再添加到查询条件中@Override public List findCart(Integer u_id) { User user = (User) sessionFactory.getCurrentSession().get(User.class,u_id); List car原创 2017-07-17 15:23:38 · 843 阅读 · 0 评论 -
懒加载返回json出错
1.懒加载的对象是代理对象,所以在转换成json字符串时无法序列化方法一:设置fetch=Fetch.Type.EAGER方法二:添加@JsonIgnore注解方法三:openSessionorg.springframework.orm.hibernate4.support.OpenSessionInViewFilteropenSessio原创 2017-07-17 15:29:05 · 2753 阅读 · 0 评论 -
解决:hibernate 生成MySQL表 无外键
解决办法: hibernate.cfg.xml 配置文件 修改: <!-- SQL dialect --> 改为 org.hibernate.dialect.MySQLInnoDBDialect 而不是 org.hibernate.dialect.MySQLDialect转载 2017-08-02 09:51:49 · 422 阅读 · 0 评论 -
关于配置了数据库方言为MySQLInnoDBDialect后Hibernate不能自动建表的问题
当需要使用支持事务的数据库方言,并且使用了MySQL 5.5及以上版本时,需要将数据库方言配置为[html] view plain copyproperty name="dialect">org.hibernate.dialect.MySQL5InnoDBDialectproperty> 注意是MySQL5InnoDBDia转载 2017-08-02 10:06:47 · 938 阅读 · 0 评论 -
hibernate多对多,中间表无数据问题
1.两个实体类:类目,属性2.关系多对多3.类目Category类 @ManyToMany(cascade = CascadeType.ALL) @JoinTable( name="category_items",//第三张表名 joinColumns=@JoinColumn(name="cate_id"),//当前类在两张表关系原创 2017-08-02 13:14:23 · 2488 阅读 · 1 评论 -
org.hibernate.exception.DataException: could not execute statement
第一种可能:换数据库名称第二种可能:id没有设置自增第三种可能:值与字段不匹配原创 2017-08-21 15:08:38 · 2862 阅读 · 0 评论 -
hibernate实体指定某些字段不映射
@Transient原创 2017-09-04 16:48:26 · 7116 阅读 · 0 评论 -
SpringMVC+Hibernate返回JSON数据报No serializer found错误
在使用SpringMVC+Hibernate环境中返回JSON数据有时会出现如下错误:Handler execution resulted in exception: Could not write content: No serializer found for class org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer a转载 2017-09-13 10:45:06 · 196 阅读 · 0 评论 -
@NotFound(action=NotFoundAction.IGNORE)
使用hibernate 注解配置实体类的关联关系,在many-to-one,one-to-one等关联中,一边引用自另一边的属性,如果属性值为某某的数据在数据库不存在了,hibernate默认会抛出异常。解决此问题,加上如下注解就可以了: @NotFound(action=NotFoundAction.IGNORE),意思是找不到引用的外键数据时忽略,NotFound默认是exception转载 2017-09-27 13:44:40 · 5185 阅读 · 0 评论 -
hibernate多对多注解开发实例
1.案例(用户和商品)2.用户类package com.sq.entity;import javax.persistence.*;import javax.xml.bind.annotation.XmlRootElement;import java.beans.FeatureDescriptor;import java.io.Serializable;import java.u原创 2017-06-30 17:28:27 · 271 阅读 · 1 评论 -
org.hibernate.AnnotationException: Associations marked as mappedBy must not define database mappings
@ManyToMany(cascade = CascadeType.ALL) @JoinTable( name="user_goods", joinColumns=@JoinColumn(name="user_id"), inverseJoinColumns=@JoinColumn(name="good_id")原创 2017-06-30 17:25:06 · 1037 阅读 · 1 评论 -
spring整合session出现问题
问题:1.no session or session was closed2.Could not obtain transaction-synchronized Session for current thread解决:在web.xml中配置OpenSessionInViewFilter openSession org.springf原创 2017-06-29 15:20:15 · 446 阅读 · 0 评论 -
hiberbate学习之一对多
一对多的配置1.画图理解2.执行步骤(客户和联系人)(1)创建实体类(2)在实体类中体现他们一对多关系package com.sq.entity;import java.util.HashSet;import java.util.Set;/** *@author sq * */public class Customer { private原创 2017-06-21 08:37:43 · 459 阅读 · 0 评论 -
hibernate入门之oracle连接
1.搭建hibernate环境导入jar包,由于hibernate会有日志输出,本身没有对日志处理的jar包,所以需要另外导入hibernate-entitymanager是hibernate一套规范,所以也是需要的所有必须jar包下载地址:http://download.csdn.net/detail/m0_37983376/98646982.创建实体类package com原创 2017-06-08 15:31:19 · 2516 阅读 · 1 评论 -
hibernate配置文件详解
hibernate映射配置文件位置名称没有固定要求映射配置文件中,标签name属性值写实体类相关内容(1)class标签name属性值实体类全路径(2)id标签和property标签name属性值是实体类属性名称 3.在id标签和property标签,column属性是可以省略的(1)不写值和name属性值是一样的 4.property标签type属性,设置生成表字原创 2017-06-09 10:54:57 · 375 阅读 · 0 评论 -
hibernate学习之多对多
1.画图理解2.执行步骤(用户和权限)(1)创建实体类,在实体类中表示相互之间关系package com.sq.entity;import java.util.HashSet;import java.util.Set;/** *@author sq * */public class Role { private String r_id; private原创 2017-06-21 09:06:47 · 193 阅读 · 0 评论 -
hibernate查询方式
对象导航查询1.根据id查询客户,再查询这个客户下所有联系人@Test public void Query1(){ Session session = SessionFactoryUtil.GetSession(); Customer customer = session.get(Customer.class, "4028802d5cc56d3b015cc56d3dc5000原创 2017-06-21 09:51:15 · 206 阅读 · 0 评论 -
hibernate多表查询
1.内连接(客户和联系人)(1)hql语句:from Customer c inner join c.setLinkedMans Session session = SessionFactoryUtil.GetSession(); String hql = "from Customer c inner join c.linkedMans"; List list = session原创 2017-06-21 11:13:47 · 248 阅读 · 0 评论 -
hibernate 一对多注解开发
hibernate 注解配置一对多关系 从hibernate 2.5开始就可以使用annotation实现实体关系的映射了,减少了配置hbm文件的繁琐,而且annotation也是一种趋势,现在的SSH2的整合都是完全可以用annotation来实现。在以前实现一对多关联的关联式都是使用hbm文件,今天我们来使用annotation试试,同样也能实现其功能。转载 2017-06-30 13:11:35 · 7544 阅读 · 0 评论 -
Hibernate中FetchMode.JOIN FetchMode.SELECT FetchMode.SUBSELECT介绍
@Fetch(FetchMode.JOIN) 会使用left join查询 只产生一条sql语句@Fetch(FetchMode.SELECT) 会产生N+1条sql语句@Fetch(FetchMode.SUBSELECT) 产生两条sql语句 第二条语句使用id in (…..)查询出所有关联的数据转载 2017-06-30 13:24:54 · 2287 阅读 · 0 评论 -
hibernate对象的三种状态以及他们之间的转换
hibernate中的对象有三种状态: 瞬时状态 (Transient),持久状态 (Persistent), 1. 瞬时状态 (Transient)当我们通过Java的new关键字来生成一个实体对象时,这时这个实体对象就处于自由状态,如下: Customer customer=new Customer(“zx”,27,images);这时customer对象就处于转载 2017-06-30 13:43:25 · 596 阅读 · 0 评论 -
hibernate注解开发之@GeneratedVlue
1.基本格式 @Id //说明它是主键 @GeneratedValue(strategy=GenerationType.IDENTITY) //指定生成策略(我这里选择的是自增长) @Column(name="t_id") //属性对应字段名 private Integer id;2.生成策略参数值AUTO:JPA自动原创 2017-06-30 15:10:36 · 337 阅读 · 0 评论 -
mappedBy reference an unknown target entity property: com.sq.entity.Address.tt_user in com.sq.entit
@OneToMany里面的mappedby值有问题正确写法:@OneToMany(targetEntity = Address.class,fetch = FetchType.LAZY,cascade = CascadeType.ALL,mappedBy = "a_id")里面的值应该写当前类对应多的一方中的属性原创 2017-06-30 16:14:24 · 633 阅读 · 0 评论 -
mappedBy作用
mappedBy的意思就是“被映射”,即mappedBy这方不用管关联关系,关联关系交给另一方处理1.规律:凡是双向关联,mapped必设,因为根本都没必要在2个表中都存在一个外键关联,在数据库中只要定义一边就可以了a) 只有OneToOne,OneToMany,ManyToMany上才有mappedBy属性,ManyToOne不存在该属性; b) mappedBy标签一定是定转载 2017-06-30 16:24:54 · 764 阅读 · 0 评论 -
hibernate一对多注解开发实例
1.实例(用户及用户地址)2.用户实体类代码package com.sq.entity;import javax.persistence.*;import javax.xml.bind.annotation.XmlRootElement;import java.beans.FeatureDescriptor;import java.io.Serializable;import原创 2017-06-30 16:22:40 · 655 阅读 · 0 评论 -
hibernate学习之核心api
Configuration//在hibernate里面封装对象 Configuration cfg = new Configuration(); cfg.configure();(1)到src下面找到名称为hibernate.cfg,xml配置文件,创建对象,把配置文件放到对象里面去(加载配置文件)SessionFactory(重点)1.使用configur原创 2017-06-09 11:19:21 · 230 阅读 · 0 评论 -
hibernate学习之一级缓存
hibernate的一级缓存1.什么是缓存?(1)数据存到数据库里面,数据库本身是文件系统,使用流方式操作文件效率并不是很高把数据存到内存里面,不需要使用流方式,可以直接读取内存中数据把数据放到内存中,提高读取效率2.hibernate缓存 (1)hibernate框架提供很多优化方式,hibernate的缓存就是一种优化 (2)hibernate缓存特点:第一类:原创 2017-06-09 15:24:56 · 255 阅读 · 0 评论 -
关于Expected positional parameter count的问题!
框架:webwork+spring+hibernate 错误:org.hibernate.QueryException: Expected positional parameter count: 1, actual parameters: [] [from Yg where bm.bmid=?]org.hibernate.QueryException: Expected pos转载 2017-09-22 10:47:04 · 1684 阅读 · 0 评论