• JPA的学习


    JPA
    1.实体注解 @Entity
    主键注解  @Id   主键策略@GeneratedValue(strategy=GenerationType.AUTO[IDENTITY,SEQUENCE,TABLE]) auto:根据方言数据库自己选择,默认选项 identity:MySQL支持  sequence:oracle支持
    @Column(length=32)字段长度
    @Temporal(TemporalType.DATE) 日期类型注解,只存储日期
    @Lob 字段为长文本或者二进制数据时
    @Transient 属性不和数据库字段映射
    @Basic(fetch=Fetch.LAZY) 用在字段上面,延迟加载,用不到的时候是不会加载到内存的
    2.提供的接口

    EntityManagerFactory 功能等价于hibernate里的sessionFactory
    EntityManager 等价于SessionManager

    EntityManagerFactory factory=Persistence.careateEntityManagerFactory("[配置文件里的持久化单元名称]")
    EntityManager em=factory.createEntityManager();
    em.getTranscation().begin();  //开始事物
    em.persist(new Entity());
    em.getTransaction().commit();
    em.close();
    factory.close();

    find() :根据ID号加载实体,相当于hibernate里的get()
    getReference(): 根据ID号懒加载实体类,只有访问实体类的对象时才会与数据库同步,相当于hibernate里的load
    remove():删除,里面参数为对象
    查询语句:

    Query query=em.createQuery("select o from person o where o.id=?1");
    query.setParameter(1,2);
    List<Person> personList=query.getResultList();


    更新查询:

    1 Query query=em.createQuery("delete  from person o where o.id=?1");
    2 query.setParameter(1,2);
    3 quert.executeUpdate();

    refresh():使内存中的Javabean和数据库数据再一次同步化。注:已经执行过find函数了,此时别人修改了数据库中的数据,你再次调用find函数是无法更新值得,因为jpa会默认从EntityManager中返回给你
    3、双向管理与级联操作
    1-m关系(用注解OneToMany):多的一方为关系的维护的,关系维护断负责外键记录的更新,关系被维护断是没有权利更新外键字段的

    其中可以有参数cascade,值可取CascadeType.Refresh,CascadeType.persist等

    fetch:值可取FetchType.EAGER(立即得到),FetchType.LAZY(延迟加载),默认为EAGER

    mappedby:出现这个的类为关系的被维护端,值为维护端中的一个属性。例如订单和订单项,在订单里的订单项上的oneToMan注解中出现此参数,表示订单表Order为被维护的表,订单项表的OrderItem里的Order属性来维护,则mappedby的值就是"order"

    @JoinColumn:定义外键字段的名称 例如@JoinColumn(name="order_id")

  • 相关阅读:
    FOR XML PATH应用之用一条SQL语句横向合并结果行
    配置SharePoint 2007 过程中引发Microsoft.SharePoint.Upgrade.SPUpgradeException 异常(未能创建配置数据库)的一个解决方法
    Android仿360手机卫士九宫图
    第一个 Android 程序
    图解SharePoint 2010 安装过程
    在Windows Server 2008 R2(64位)上安装SharePoint 2007出现的一个错误的解决方法
    用Hint取代Messagebox来提示错误信息
    近期阅读计划
    测试下外链图片
    淘宝DBA的技术要求
  • 原文地址:https://www.cnblogs.com/softzrp/p/6666707.html
Copyright © 2020-2023  润新知