随笔分类 - Hibernate
1
摘要:首先说一句:是版本的问题!在多对多或者多对一,从一中查找多中查询某些语句时容易出现我写的hql为:from Department as d where d.employees.name='Tom';运行时出现异常:org.hibernate.QueryException: illegal attem...
阅读全文
摘要:前提是引入两个包:org.springframework.test-3.1.3.RELEASE和JUnit4.package com.qk.test;import javax.annotation.Resource;import org.junit.Test;import org.junit.run...
阅读全文
摘要:@Transactional标签用于标记ServiceImpl使用事务,并且能够打开一个sessionFactory的session,并且打开事务。如果在这个标签为@Transactional(propagation = Propagation.NOT_SUPPORTED),就不打开session了...
阅读全文
摘要:在properties中,&字符不需要转义,因此在连接数据库的时候使用编码的地方直接使用&即可:driverClass=com.mysql.jdbc.DriverjdbcUrl=jdbc:mysql://localhost:3306/frameworkcqkx?useUnicode=true&characterEncoding=UTF-8username=rootpassword=然而在xml配置文件中,对于xml来说&是一个特殊字符,如果需要使用到这个字符,则必须转义成:&因此连接数据库的时候应该这样写:
阅读全文
摘要:分类:一对多自身双向关联关系Java持久化类:package com.hyy.hibernate.one_to_many.domain;import java.util.HashSet;import java.util.Set;/** * 分类:一对多自身双向关联关系 * User: HYY * Date: 13-12-13 * Time: 下午7:32 * To change this template use File | Settings | File Templates. */public class Category { private Integer id; priva...
阅读全文
摘要:@DynamicUpdate(value = true)@DynamicInsert(value = true)这两个注解默认是false,经试验,如果使用了这两个注解,在一定程度上是可以提高插入和更新的效率的。对于更新,如果你只是改了一个字段,若没开动态更新,那会再次更新所有的字段,如果开了的话,只会更新你所修改的字段。
阅读全文
摘要:Hibernate 注解 没有加@Column一样会在数据库创建这些字段如下一个注解类:package com.hyy.hibernate.one_to_many.domain;import javax.persistence.*;/** * Created with IntelliJ IDEA. * User: HYY * Date: 13-11-28 * Time: 下午8:50 * To change this template use File | Settings | File Templates. */@Entity@Tablepublic class TypeToName { .
阅读全文
摘要:①纯Hibernate开发:当你在Bean中写入注解后,需要告诉hibernate哪些类使用了注解。方法是在hibernate.hbm.xml文件中配置 com.mysql.jdbc.Driver jdbc:mysql:///hibernatetest root 123 org.hibernate.dialect.MySQLDialect create ...
阅读全文
摘要:一个自增长ID的对象被save或者persist后,会返回其主键ID: Department department = new Department(); department.setName("xxxxxxx"); session.persist(department); System.out.println("id = " + department2.getId()); Department department2 = new Department(); department2.setName("xxxxx...
阅读全文
摘要:先看两个映射关系:部门: 员工: 测试类: //创建部门 Department department = new Department(); department.setName("dept"); department.setAddress(...
阅读全文
摘要:要引入import org.hibernate.annotations.Cache;在类前面添加:@Cache(usage= CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)可选项有:read-onlyread-writenonstrict-read-writetransactional完整示例:package com.hlcg.main.bean;import org.hibernate.annotations.Cache;import org.hibernate.annotations.CacheConcurrencyStrategy;impor
阅读全文
摘要:在使用hibernate注解的时候,我们映射一对多时,有时候莫名其妙的产生了两张表,其中一张表是A_B,这并不符合数据库中多的一方放置一个外键的原则,那么如何控制只产生一个表呢,请看下面的例子:多的那方: @ManyToOne(cascade = CascadeType.ALL, optional = false) @JoinColumn(name="info_id", referencedColumnName="id") public HlInfo getHlInfo() { return hlInfo; }一的一方: @OneToMany(targe
阅读全文
摘要:在字段前面加这个注解:@Transient
阅读全文
摘要:可能的原因:①该注解类中的注解出错:例如是否因为属性名与数据库关键字冲突②是否添加包扫描配置:配置在sessionFactory的bean里面。
阅读全文
摘要:比如你映射了一个名称为key的属性,这是数据库所不允许的,因为它是数据库的关键字。因此,你必须为此属性添加一对符号,即键盘上“1”键的左边的按键。
阅读全文
摘要:请看如下红色部分,show为mysql的保留字,所以我在hibernate修改show字段值的时候出现错误,原来是show跟mysql的保留字相同了CREATETABLE`t_letter`(`lid`int(11)NOTNULLAUTO_INCREMENTCOMMENT'主键',`title`varchar(200)DEFAULTNULLCOMMENT'留言标题',`content`textCOMMENT'留言内容',`time`datetimeDEFAULTNULLCOMMENT'留言时间',`status`int(11)DE
阅读全文
摘要:column注解中的columnDefinition属性用于覆盖数据库DDL中的语句:(MySql) @Column(columnDefinition = "int(11) DEFAULT NULL COMMENT '类型'") public Integer getType() { return type; }因此,又可以为该列添加comment注释。然而,columnDefinition不推荐使用,因为可能导致移植性不好,各个数据库不兼容等。
阅读全文
摘要:@Id @SequenceGenerator(name="increment") @GeneratedValue(strategy=GenerationType.AUTO, generator="increment") public Integer getId() { return id; }经测试,MySql数据库可用。
阅读全文
摘要:SSH hibernate 使用时最好添加访问数据库的编码如下所示:第13行为设置hibernate访问数据库的编码(&是&的转义序列) 1 4 5 6 7 8 9 10 com.mysql.jdbc.Driver11 12 13 jdbc:mysql://localhost:3306/hibernatetest?useUnicode=true&characterEncoding=UTF-814 15 root16 ...
阅读全文
摘要:Hibernate关于sql中的count(*)数据统计:①如果使用的是HQL:直接在HQL中使用count(*)即可获取行数 Long count = (Long)HibernateUtil.getSession() .createQuery("select count(*) from Employee") .uniqueResult(); System.out.println(count); ②如果使用的是Criteria方式查询:使用Projections.rowCount()方法 ...
阅读全文
1