jpa
来源:互联网 发布:上海it外包 编辑:程序博客网 时间:2024/05/20 07:35
不是纯的jpa。。。。。
jpa和hibernate的区别:
hibernate加载映射文件的时候是这样的:
在hibernate.cfg.xml里面: 用的是resource,有其他的配置文件
<!-- 加载对象映射文件 --><mapping resource="hbm/RoleInfo.hbm.xml"/><mapping resource="hbm/UserInfo.hbm.xml"/>
而jpa是这样的:
在hibernate.cfg.xml,这里用的是class,没有其他配置文件,实体类都是使用注解实现的。
<!-- 加载对象映射类 --><mapping class="com.hibernate.relation.entity.RoleInfo"/><mapping class="com.hibernate.relation.entity.UserInfo"/>
hibernate.cfg.xml:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-configuration PUBLIC"-//Hibernate/Hibernate Configuration DTD 3.0//EN""http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"><hibernate-configuration><session-factory><property name="connection.driver_class">com.mysql.jdbc.Driver</property><property name="connection.url">jdbc:mysql://127.0.0.1:3306/userdb</property><property name="connection.username">root</property><property name="connection.password">x5</property><!-- 配置额外属性 --><property name="dialect">org.hibernate.dialect.MySQLDialect</property><property name="show_sql">true</property><property name="format_sql">true</property><!-- 使用正向生成表 --><property name="hbm2ddl.auto">update</property><property name="hibernate.current_session_context_class">thread</property><!-- 加载对象映射类 --><mapping class="com.hibernate.relation.entity.RoleInfo"/><mapping class="com.hibernate.relation.entity.UserInfo"/></session-factory></hibernate-configuration>
package com.hibernate.relation.entity;import java.util.HashSet;import java.util.Set;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.GenerationType;import javax.persistence.Id;import javax.persistence.OneToMany;import javax.persistence.Table;import org.hibernate.annotations.Cascade;import org.hibernate.annotations.OnDelete;import org.hibernate.annotations.OnDeleteAction;@Entity@Table(name="roleInfo")public class RoleInfo {private Integer roleId;private String roleName;private Set<UserInfo> users = new HashSet<UserInfo>();@Id@GeneratedValue(strategy=GenerationType.AUTO)public Integer getRoleId() {return roleId;}public void setRoleId(Integer roleId) {this.roleId = roleId;}public String getRoleName() {return roleName;}public void setRoleName(String roleName) {this.roleName = roleName;}@OneToMany(mappedBy="roleInfo")@Cascade({org.hibernate.annotations.CascadeType.DELETE_ORPHAN}) public Set<UserInfo> getUsers() {return users;}public void setUsers(Set<UserInfo> users) {this.users = users;}@Overridepublic String toString() {return "RoleInfo [roleId=" + roleId + ", roleName=" + roleName + "]";}}
实体类:UserInfo
package com.hibernate.relation.entity;import java.util.Date;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.GenerationType;import javax.persistence.Id;import javax.persistence.JoinColumn;import javax.persistence.ManyToOne;import javax.persistence.Table;import javax.persistence.Transient;import org.hibernate.annotations.Cascade;@Entity // 标注该类是实体@Table(name = "user")public class UserInfo {private Date beginTime;private Integer userId;private String username;private String password;// 表中表现为引用RoleInfo表中的主键,而对象中表现为引用该表对应类private RoleInfo roleInfo;@Id // 标注主键@GeneratedValue(strategy=GenerationType.AUTO)public Integer getUserId() {return userId;}public void setUserId(Integer userId) {this.userId = userId;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}@ManyToOne@JoinColumn(name="roleId") // 指定生成外键名称public RoleInfo getRoleInfo() {return roleInfo;}public void setRoleInfo(RoleInfo roleInfo) {this.roleInfo = roleInfo;}@Transient // 生成实体的时候不能创建在表中public Date getBeginTime() {return beginTime;}public void setBeginTime(Date beginTime) {this.beginTime = beginTime;}@Overridepublic String toString() {return "UserInfo [userId=" + userId + ", username=" + username+ ", password=" + password + ", roleInfo=" + roleInfo + "]";}}
测试类:
/** * */package com.hibernate.relation.test;import org.junit.Test;import com.hibernate.relation.util.HibernateSessionFactoryUtil;/** * @author Administrator * @date 2015-12-17 */public class TestHibernateJPA {@Testpublic void testJpa() {System.out.println(HibernateSessionFactoryUtil.getSession());}}
jpa维护不方便,开发很快
0 0
- JPA
- JPA
- JPA
- JPA
- JPA
- JPA
- JPA
- jpa
- JPA
- JPA
- JPA
- JPA
- JPA
- jpa
- jpa
- JPA
- JPA
- JPA
- 报表、分析、大数据的理解
- MySQL用户权限管理
- 修改Windows系统盘盘符
- android 百度地图SDK 3.7.0 周边雷达-Radar 周边搜索-PoiSearch
- 堆和栈的区别
- jpa
- Android类参考---Fragment
- Systemctl command
- 网络地址格式及域名地址转化
- dp和px的区别
- 初看信息资源管理
- redHat5 local resposity yum install mysql
- JAVA之Annotation(注释)
- 全面复习之SQL(5)-视图