首页 > Hibernate > 列表

hibernate缓存


一级缓存

  • session级别,默认开启,不能关闭。
  • 当程序执行时,先放我一级缓存,如果没有才访问数据库。

二级缓存

二级缓存说明

阅读全文 »


hibernate一对多


一的一方:学生类

@Id
@GeneratedValue
private int id;

private String name;
private int age;

@Transient//表示属性不会被ORM映射到数据库中
private double salary;

@ManyToOne(cascade=CascadeType.ALL)//用1的一方维护关联关系
@JoinColumn(name="cid")
private ClassRoom classRoom;  

多的一方:教室

@Id
private String id;

private String cname;

阅读全文 »


hibernate多对多


学生类

@Entity(name="t_student")
public class Student {
	@Id
	@GeneratedValue
	private int id;
	
	private String name;
	private int age;
	
	@Transient//表示属性不会被ORM映射到数据库中
	private double salary;
	
	@ManyToMany(cascade=CascadeType.ALL)
	@JoinTable(
		  name="t_stu_teacher",
		  joinColumns={@JoinColumn(name="sid")},
		  inverseJoinColumns={@JoinColumn(name="tid")}
	)
	private Set<Teacher> teacher;
}  

老师类

@Entity
public class Teacher {
	@Id
	@GeneratedValue
	private int id;
	
	private String name;
	
	@ManyToMany(mappedBy="teacher")
	private Set<Student> stu;
}

阅读全文 »


hibernate-spring链接Oracle


使用hibernate以及spring链接Oracle数据库的Application.xml的配置:

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
		<property name="user" value="youruser"></property>
		<property name="password" value="yourpassword"></property>
		<property name="driverClass" value="oracle.jdbc.driver.OracleDriver"></property>
		<property name="jdbcUrl" value="jdbc:oracle:thin:@192.168.0.1:1521:instance"></property>
		<!-- <property name="hibernate.dialect" value="org.hibernate.dialect.OracleDialect"/> -->
		<property name="initialPoolSize" value="5"></property>
		<property name="maxPoolSize" value="10"></property>
	</bean>
	
	<!-- 配置sessionFactory -->
	<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
		<!-- <property name="configLocation" value="classpath:hibernate.cfg.xml"></property> -->	
			<!-- 查找哪个包中的实体类 -->
		<property name="packagesToScan" >
			<value>com.lyf.entity</value>
		</property>
		<!-- 注入数据源 -->
		<property name="dataSource" ref="dataSource" />
		<property name="hibernateProperties">
			<!-- <value> hibernate.dialect=org.hibernate.dialect.HSQLDialect </value> -->
			<props> 
                <!--数据库方言-->
				<prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop>
				<prop key="hibernate.show_sql">false</prop>
				<prop key="hibernate.hbm2ddl.auto">update</prop>
				<prop key="hibernate.format_sql">false</prop>
			</props>
		</property>
	</bean>  

加入的驱动包:ojdbc6.jar.

阅读全文 »


hibernate注解


一对一

学生类:

@Id
@GeneratedValue
private int id;
private String name;
private int age;
@Transient//表示属性不会被ORM映射到数据库中
private double salary;
@OneToOne(cascade=CascadeType.ALL)//级联操作,包含所有
@JoinColumn(name="pid")
private IdCard card;

阅读全文 »


hibernate方言异常


使用hibernate.cfg.xml配置时,启动Junit初始化表时,报错:

org.hibernate.HibernateException: The dialect was not set. Set the property  

这是由于没配置mapping引起的。

阅读全文 »