orm

How to do bulk delete in JPA when using Element Collections?

孤者浪人 提交于 2020-02-12 09:18:30
问题 I am having trouble working out how to do a bulk delete of a Person object using JPA, when the Person objects contain data stored using an @ElementCollection . Any ideas on how to do this would be much appreciated. @Entity @Table(name="at_person") public class Person implements Comparable<Person> { @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name="id") private long id = 0; @Column(name="name", nullable = true, length = 128) private String name = ""; @ElementCollection @Column

Django-Models与ORM

我们两清 提交于 2020-02-11 08:02:01
一、增加 from django.db import models class Publisher(models.Model): name = models.CharField(max_length=30, verbose_name="名称") address = models.CharField("地址", max_length=50) city = models.CharField('城市',max_length=60) state_province = models.CharField(max_length=30) country = models.CharField(max_length=50) website = models.URLField() class Meta: verbose_name = '出版商' verbose_name_plural = verbose_name def __str__(self): return self.name class Author(models.Model): name = models.CharField(max_length=30) def __str__(self): return self.name class AuthorDetail(models.Model): sex = models.BooleanField

NHibernate文档翻译 第4章 O/R Mapping基础

帅比萌擦擦* 提交于 2020-02-10 06:17:14
第 4 章 O/R Mapping基础 目录 映射声明(Mapping declaration) Schema hibernate-mapping class id 联合ID(composite-id) 识别器(discriminator) 版本(version)(可选) 时间戳(timestamp )(可选) property 多对一(many-to-one) 一对一(one-to-one) 组件(component) 子类(subclass) 连接的子类(joined-subclass) map, set, list, bag 引用(import) NHibernate的类型 实体(Entities)和值(values) 基本值类型 自定义值类型 映射到"任意"(any)类型 SQL中引号包围的标识符 映射文件的模块化(Modular mapping files) 映射声明(Mapping declaration) 对象和关系数据库之间的映射是用一个XML文档(XML document)来定义的。这个映射文档被设计为易读的,并且可以手工修改。映射语言是以.NET为中心的,意味着映射是按照持久化类的定义来创建的,而非表的定义。 请注意,虽然很多Hibernate用户选择手工定义XML映射文档,也有一些工具来生成映射文档,包括XDoclet,Middlegen和AndroMDA.

[NHibernate]持久化类(Persistent Classes)

只谈情不闲聊 提交于 2020-02-10 06:17:03
系列文章 [Nhibernate]体系结构 [NHibernate]ISessionFactory配置 [NHibernate]持久化类(Persistent Classes) 引言 对象和关系数据库之间的映射是用一个XML文档(XML document)来定义的。这个映射文档被设计为易读的,并且拒绝恶意手工修改。映射语言以.NET为中心的,意味着映射是持久化类的定义来创建的,而非表的定义。 请注意,虽然很多Hibernate用户选择手工定义XML映射文档,也有一些工具来生成映射文档,包括XDoclet,Middlegn和AndroMDA(这里是Nhibernate文档中移除没有从Hibernate文档中转换过来的部分),NHibernate中并没有像XDoclet,Middlegn和AndroMDA这样的工具,在运用中,一般使用代码生成器来生成XML配置文档。 一个映射的例子 1 <?xml version="1.0" ?> 2 <hibernate-mapping xmlns="urn:nhibernate-mapping-2.0" 3 namespace="Eg" assembly="Eg"> 4 <class name="Cat" table="CATS" discriminator-value="C"> 5 <id name="Id" column="uid" type=

Hibernate 配置文件与映射文件 总结

▼魔方 西西 提交于 2020-02-10 06:16:21
hibernate 是一个彻底的ORM(Object Relational Mapping,对象关系映射)开源框架。 一、Hibernate配置文件详解 Hibernate配置文件有两种形式:XML与properties 个人建议使用XML,因为properties中不能配置关联的映射文件,在后续的实现中会带来一些没必要的编码; XML(hibernate.cfg.xml)文件详解: <? xml version= "1.0" encoding= "GBK" ?> <!-- 指定Hibernate配置文件的DTD信息 --> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd" > <!-- hibernate- configuration是连接配置文件的根元素 --> < hibernate-configuration > < session-factory > <!-- 指定连接数据库所用的驱动 --> < property name= "connection.driver_class" >com.mysql.jdbc

Django之ORM对数据库操作

旧城冷巷雨未停 提交于 2020-02-10 06:16:02
基本操作 <1> all(): 查询所有结果 <2> filter(**kwargs): 它包含了与所给筛选条件相匹配的对象 <3> get(**kwargs): 返回与所给筛选条件相匹配的对象,返回结果有且只有一个,如果符合筛选条件的对象超过一个或者没有都会抛出错误。 <4> exclude(**kwargs): 它包含了与所给筛选条件不匹配的对象 <5> values(*field): 返回一个ValueQuerySet——一个特殊的QuerySet,运行后得到的并不是一系列model的实例化对象,而是一个可迭代的字典序列 <6> values_list(*field): 它与values()非常相似,它返回的是一个元组序列,values返回的是一个字典序列 <7> order_by(*field): 对查询结果排序 <8> reverse(): 对查询结果反向排序,请注意reverse()通常只能在具有已定义顺序的QuerySet上调用(在model类的Meta中指定ordering或调用order_by()方法)。 <9> distinct(): 从返回结果中剔除重复纪录(如果你查询跨越多个表,可能在计算QuerySet时得到重复的结果。此时可以使用distinct(),注意只有在PostgreSQL中支持按字段去重。) <10> count(): 返回数据库中匹配查询

Django的ORM操作-FQ-事物

ぃ、小莉子 提交于 2020-02-10 06:13:06
1,必知必会13条 <1> all(): 查询所有结果 <2> filter(**kwargs): 它包含了与所给筛选条件相匹配的对象 <3> get(**kwargs): 返回与所给筛选条件相匹配的对象,返回结果有且只有一个,如果符合筛选条件的对象超过一个或者没有都会抛出错误。 <4> exclude(**kwargs): 它包含了与所给筛选条件不匹配的对象 <5> values(*field): 返回一个ValueQuerySet——一个特殊的QuerySet,运行后得到的并不是一系列model的实例化对象,而是一个可迭代的字典序列 <6> values_list(*field): 它与values()非常相似,它返回的是一个元组序列,values返回的是一个字典序列 <7> order_by(*field): 对查询结果排序 <8> reverse(): 对查询结果反向排序,请注意reverse()通常只能在具有已定义顺序的QuerySet上调用(在model类的Meta中指定ordering或调用order_by()方法)。 <9> distinct(): 从返回结果中剔除重复纪录(如果你查询跨越多个表,可能在计算QuerySet时得到重复的结果。此时可以使用distinct(),注意只有在PostgreSQL中支持按字段去重。) <10> count():

java 三大框架——Hibernate

本小妞迷上赌 提交于 2020-02-09 14:37:11
Hibernate框架简介 Hibernate框架是一款数据持久型的框架也是一款ORM框架 数据持久型:是将数据存入数据库或将数据库里的数据读入程序中 ORM:我们说JAVA中是面向对象的思想 而现在市场中大部分使用的数据库都是关系型数据库,如果利用面向对象语言来操作关系型数据库的话,其中会出现一些很麻烦的代码,会阻碍我们进行开发造成了没必要的麻烦,所以ORM提供了一种能使用对象来调用数据库里的每一条数据,具体是以类来对应数据库中的表,以对象来对应表中的字段,以对象来对应表中的每一条数据。 在了解Hibernate之前 首先回顾一下JDBC是如何操作数据库的 1,加载mysql驱动 2,获取连接 3,获取数据的操作对象 4,进行数据库的操作 5,关闭资源 在Hibernate结构目录中分别有以下几个结构 documentation(文档) lib(jar包) project(源代码) 对于初学这款框架的程序员来说 先进入lib包下进行导包 hibernate框架的jar包就分的很详细 lib中会发现有这几种envers jpa optional osgi required 一般情况下只导入required下的jar包即可 这些jar都是必须存在的 optional中的jar包主要是用于优化hibernate的性能 包括数据连接池和缓存两部分 接下来了解下Hibernate的相关配置

MyBatis+spring遇到的问题

青春壹個敷衍的年華 提交于 2020-02-09 05:49:36
1.PropertyPlaceholderConfigurer无效 昨天白天就遇到了这个问题,applicationContext里的dataSource使用PropertyPlaceholder,如<property name="driverClassName" value="${jdbc.driver}" />,然后启动spring一直报[${jdbc.driver}]无法加载,这里用到了spring 3.0的新特性profiles,起先还以为profiles设置问题,后来把profiles撤掉问题依旧。不用占位符,直接填实际值是可以的。而且就算<property name="ignoreResourceNotFound" value="false" />这样设置也不会报错,这是不应该的。以前一直用占位符方式也都没出现过问题,然后就下班了。回家玩了会儿游戏,打得爽了,心情好就想再看看这个问题。我把MyBatis有关的配置全撤掉,一个一个加上去,当加到MapperScannerConfigurer的时候就出现问题, 没加的时候properties文件不存在也会报错,那问题肯定就在这里了。用google搜了一把,官网有人说MapperScannerConfigurer会在PropertyPlaceholderConfigurer之前进行扫描

MyBatis

妖精的绣舞 提交于 2020-02-08 15:52:53
MyBatis是一个Java的持久层框架,和Hibernate一样,都是ORM框架。 MyBaits的前身是iBatis,可以将数据库中记录映射为pojo,是开发人员以面向对象编程的思想来操作数据库。 MyBatis消除了几乎所有的JDBC代码,比如注册驱动,获取、关闭数据库连接,创建Statement对象,手动设置参数,结果集检索,这些都不需要,开发人员只需要使用xml进行简单的配置、映射,就可以操作数据库。 常见的封装了jdbc的框架:DbUtils、Hibernate、MyBatis、Spring的JdbcTemplate。 ORM框架 ORM,Object Relational Mapping 对象关系映射,对象指的是pojo,关系指的是关系型数据库中的表、记录。 常用的ORM框架包括MyBatis、Hibernate。 MyBatis、Hibernate的区别 Hibernate是一个标准的ORM框架,是全表映射框架。 开发效率要高于MyBatis。开发者只需定义映射关系、pojo,Hibernate会自动生成对应的sql语句、操作数据库的方法,开发者使用Hibernate提供的方法操作持久层就ok,不需要熟练掌握sql、不需要编写大量代码。 学习门槛高。开发者要有良好的数据关系模型基础,需要学习复杂的hql。 偏死板、维护有难度