Java应用数据库:Hibernate对多表关联查询
- 格式:doc
- 大小:16.00 KB
- 文档页数:5
hibernate的基本用法Hibernate是一个开源的Java框架,用于简化数据库操作。
它为开发人员提供了一个更加简单、直观的方式来管理数据库,同时也提高了应用程序的性能和可维护性。
本文将逐步介绍Hibernate的基本用法,包括配置、实体映射、数据操作等。
一、配置Hibernate1. 下载和安装Hibernate:首先,我们需要下载Hibernate的压缩包并解压。
然后将解压后的文件夹添加到Java项目的构建路径中。
2. 创建Hibernate配置文件:在解压后的文件夹中,可以找到一个名为"hibernate.cfg.xml"的文件。
这是Hibernate的主要配置文件,我们需要在其中指定数据库连接信息和其他相关配置。
3. 配置数据库连接:在"hibernate.cfg.xml"文件中,我们可以添加一个名为"hibernate.connection.url"的属性,用于指定数据库的连接URL。
除此之外,还需要指定数据库的用户名和密码等信息。
4. 配置实体映射:Hibernate使用对象关系映射(ORM)来将Java类映射到数据库表。
我们需要在配置文件中使用"mapping"元素来指定实体类的映射文件。
这个映射文件描述了实体类与数据库表之间的对应关系。
二、实体映射1. 创建实体类:我们需要创建一个Java类,用于表示数据库中的一行数据。
这个类的字段通常与数据库表的列对应。
同时,我们可以使用Hibernate提供的注解或XML文件来配置实体的映射关系。
2. 创建映射文件:可以根据个人喜好选择使用注解还是XML文件来配置实体类的映射关系。
如果使用XML文件,需要创建一个与实体类同名的XML文件,并在其中定义实体类与数据库表之间的映射关系。
3. 配置实体映射:在配置文件中,我们需要使用"mapping"元素来指定实体类的映射文件。
Hibernate SQL拼接原理1. 什么是HibernateHibernate是一个开源的Java持久化框架,它提供了一个对象关系映射(Object-Relational Mapping,ORM)的解决方案,用于将Java对象与关系数据库进行映射。
通过Hibernate,我们可以使用面向对象的方式来操作数据库,而不需要直接编写SQL语句。
Hibernate采用了一种称为“延迟加载”的机制,它会在需要访问数据时才去执行SQL查询。
这种机制可以提高性能,并且使得开发者可以将更多的精力放在业务逻辑上。
2. Hibernate SQL拼接原理在使用Hibernate时,我们通常使用HQL(Hibernate Query Language)或者Criteria API来查询数据。
这些查询语言会被转换成对应的SQL语句,并由Hibernate执行。
2.1 HQL和SQLHQL是一种面向对象的查询语言,它类似于SQL但具有更高级的特性。
例如,HQL支持继承、多态、关联等概念,并且可以直接操作Java对象而不需要关心底层数据库表结构。
当我们使用HQL进行查询时,Hibernate会将HQL语句转换成对应的SQL语句,并通过JDBC驱动执行SQL查询。
这个过程包括两个阶段:解析和执行。
2.2 解析阶段在解析阶段,Hibernate会对HQL语句进行语法分析,并根据查询条件生成对应的SQL查询。
这个过程包括以下几个步骤:2.2.1 解析HQL语句首先,Hibernate会将HQL语句解析成一个抽象的查询树(Query Tree)。
这个查询树表示了HQL语句的结构和含义。
例如,对于以下的HQL语句:String hql = "from Employee e where = :deptName";Hibernate会解析成如下的查询树:SELECTeFROMEmployee eWHERE = :deptName2.2.2 解析实体和属性接下来,Hibernate会解析查询树中的实体和属性,并将它们映射到数据库表和列。
hibernate框架的工作原理Hibernate框架的工作原理Hibernate是一个开源的ORM(Object-Relational Mapping)框架,它将Java对象映射到关系型数据库中。
它提供了一种简单的方式来处理数据持久化,同时也提供了一些高级特性来优化性能和可维护性。
1. Hibernate框架的基本概念在开始讲解Hibernate框架的工作原理之前,需要先了解一些基本概念:Session:Session是Hibernate与数据库交互的核心接口,它代表了一个会话,可以用来执行各种数据库操作。
SessionFactory:SessionFactory是一个线程安全的对象,它用于创建Session对象。
通常情况下,应用程序只需要创建一个SessionFactory对象。
Transaction:Transaction是对数据库操作进行事务管理的接口。
在Hibernate中,所有对数据库的操作都应该在事务中进行。
Mapping文件:Mapping文件用于描述Java类与数据库表之间的映射关系。
它定义了Java类属性与数据库表字段之间的对应关系。
2. Hibernate框架的工作流程Hibernate框架主要分为两个部分:持久化层和业务逻辑层。
其中,持久化层负责将Java对象映射到数据库中,并提供数据访问接口;业务逻辑层则负责处理业务逻辑,并调用持久化层进行数据访问。
Hibernate框架的工作流程如下:2.1 创建SessionFactory对象在应用程序启动时,需要创建一个SessionFactory对象。
SessionFactory是一个线程安全的对象,通常情况下只需要创建一个即可。
2.2 创建Session对象在业务逻辑层需要进行数据访问时,需要先创建一个Session对象。
Session是Hibernate与数据库交互的核心接口,它代表了一个会话,可以用来执行各种数据库操作。
2.3 执行数据库操作在获取了Session对象之后,就可以执行各种数据库操作了。
Hibernate查询首先介绍get()和load()方法的区别:get()方法和load()方法的区别主要在于对二级缓存的使用上。
load()方法会使用二级缓存,而get()方法在一级缓存没有找到会直接查询数据库,不会去二级缓存中查找。
get():如果在数据库中没有记录会返回空,get()无论如何都会返回数据.load():如果数据库中没有记录会抛出异常,如果有数据返回的是一个代理对象。
list和iterator()方法之间的区别:(N+1?)list()方法在执行时,直接运行查询结果所需要的查询语句。
iterator()方法则是先执行得到对象ID的查询,然后在根据每个ID值去取得所要查询的对象。
因此:对于list()方式的查询通常只会执行一个SQL语句,而对于iterator()方法的查询则可能需要执行N+1条SQL语句(N为结果集中的记录数).结果集的处理方法不同:list()方法会一次活的所有的结果集对象,而且他会依据查询的结果初始化所有的结果集对象。
如果在结果集非常庞大的时候会占据非常多的内存,甚至会造成内存溢出的情况发生。
iterator()方法在执行时不会一次初始化所有的对象,而是根据对结果集的访问情况来初始化对象。
一次在访问中可以控制缓存中对象的数量,以避免占用过多的缓存,导致内存溢出情况的发生。
HQL:HQL是一种面向对象的查询语言,HQL的操作对象是类、实例和属性等。
SQL:sql的操作对象是数据表和列等数据对象。
Hql是完全面向对象的查询语言,因此可以支持继承和多条等特征。
HQL查询依赖于Query类,每个Query实例对应一个查询对象。
定参数的功能,Query 接口才是真正的HQL查询接口。
//创建一个Query 对象Java代码1Query query = session.createQuery ("from Customer as c where=:customerName and c.age=:customerAge");//动态绑定参数Java代码2query.setString("customerName","Tom");3query.setInteger("customerAge",21);//执行查询语句,返回结果Java代码4List result = query.list();HQL查询步骤:1:获取Hibernate Session对象。
第一章【思考题】1、请简述Spring框架的优点。
2、请简述什么是Spring的IoC和DI。
【答案】1、Spring框架的优点如下:(1)非侵入式设计:Spring是一种非侵入式(non-invasive)框架,它可以使应用程序代码对框架的依赖最小化。
(2)方便解耦、简化开发:Spring就是一个大工厂,可以将所有对象的创建和依赖关系的维护工作都交给Spring容器管理,大大的降低了组件之间的耦合性。
(3)支持AOP:Spring提供了对AOP的支持,它允许将一些通用任务,如安全、事务、日志等进行集中式处理,从而提高了程序的复用性。
(4)支持声明式事务处理:只需要通过配置就可以完成对事务的管理,而无需手动编程。
(5)方便程序的测试:Spring提供了对Junit4的支持,可以通过注解方便的测试Spring 程序。
(6)方便集成各种优秀框架:Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(如:Struts、Hibernate、MyBatis、Quartz等)的直接支持。
(7)降低了Java EE API的使用难度:Spring对Java EE开发中非常难用的一些API (如:JDBC、JavaMail等),都提供了封装,使这些API应用难度大大降低。
2、IoC的全称是Inversion of Control,中文名称为控制反转。
控制反转就是指在使用Spring框架之后,对象的实例不再由调用者来创建,而是由Spring容器来创建,Spring 容器会负责控制程序之间的关系,而不是由调用者的程序代码直接控制。
这样,控制权由应用代码转移到了Spring容器,控制权发生了反转。
DI的全称是Dependency Injection,中文称之为依赖注入。
它与控制反转(IoC)的含义相同,只不过这两个称呼是从两个角度描述的同一个概念。
从Spring容器的角度来看,Spring容器负责将被依赖对象赋值给调用者的成员变量,这相当于为调用者注入了它依赖的实例,这就是Spring的依赖注入。
多表关联查询语句多表关联查询是数据库中常用的一种查询方式,它可以通过关联多个表来获取更加复杂的查询结果。
下面将列举一些常见的多表关联查询语句,以及它们的应用场景。
1. 内连接查询:SELECT * FROM table1 INNER JOIN table2 ON table1.column = table2.column;这种查询会返回两个表中满足连接条件的数据行,适用于需要同时查询两个表中的数据的场景。
2. 左连接查询:SELECT * FROM table1 LEFT JOIN table2 ON table1.column = table2.column;左连接查询会返回左表中所有的数据行,以及满足连接条件的右表数据行,适用于需要查询左表的所有数据,并根据连接条件获取右表数据的场景。
3. 右连接查询:SELECT * FROM table1 RIGHT JOIN table2 ON table1.column = table2.column;右连接查询会返回右表中所有的数据行,以及满足连接条件的左表数据行,适用于需要查询右表的所有数据,并根据连接条件获取左表数据的场景。
4. 外连接查询:SELECT * FROM table1 FULL OUTER JOIN table2 ON table1.column = table2.column;外连接查询会返回两个表中所有的数据行,无论是否满足连接条件,适用于需要查询两个表中的所有数据的场景。
5. 自连接查询:SELECT * FROM table1 t1 INNER JOIN table1 t2 ON t1.column = t2.column;自连接查询是指将同一个表作为两个不同的表进行连接查询,适用于需要查询同一个表中不同行之间的关系的场景。
6. 多表连接查询:SELECT * FROM table1 INNER JOIN table2 ON table1.column1 = table2.column1 INNER JOIN table3 ON table2.column2 = table3.column2;多表连接查询可以连接多个表,通过多个连接条件获取多个表中的数据行,适用于需要查询多个表之间复杂关系的场景。
Hibernate查询数据库的三种方式一、Hibernate的HQL与SQL查询1.Hql(Hibernate Query Language)是面向对象的查询查询方式,HQL查询提供了更加丰富的和灵活的查询特性,因此Hibernate将HQL查询方式立为官方推荐的标准查询方式,提供了类似标准SQL语句的查询方式,同时也提供了面向对象的封装。
HQL查询语句from关键字后面跟的类名+类对象,where后用对象的属性做条件;示例代码:(User是映射数据库的一个类)public boolean checkUser(UserForm userForm){//TODO Auto-generated method stub//String HQLString="from User u whereername='"+userForm.getUsername()+"'";String HQLString="from User u where ername=:uname";Session session=HibernateSessionFactory.currentSession();//获取事务session.beginTransaction();Query query=session.createQuery(HQLString);query.setParameter("uname",userForm.getUsername());//绑定参数Object list=query.list().get(0);//list获取数据集,get获取数据集的某条记录//提交事务session.getTransaction().commit();//关闭SessionHibernateSessionFactory.closeSession();User user=(User)list;if(user.getPassword().equals(userForm.getPassword())){return true;}else{return false;}}2.sql是面向数据库表查询,from后面跟的是表名,where后用表中字段做条件;示例代码:([xxdb].[dbo].[student]就是要查询的数据库表)public boolean checkUser(UserForm userForm){//TODO Auto-generated method stub//String SQLString="select*from[xxdb].[dbo].[student]u whereerName='"+userForm.getUsername()+"'";String SQLString=”select*from[xxdb].[dbo].[student]u whereerName=:uname”;Session session=HibernateSessionFactory.currentSession();session.beginTransaction();//Query query=session.createSQLQuery(SQLString).addEntity(User.class);//实体查询Query query=session.createSQLQuery(SQLString).addScalar("userid",StandardBasicTypes.INTEGER).addScalar("username",StandardBasicTypes.STRING).addScalar("password",StandardBasicTypes.STRING).addScalar("gender",StandardBasicTypes.INTEGER);//标量查询query.setParameter("uname",userForm.getUsername());//绑定参数Object list=query.list().get(0);//list获取数据集,get获取数据集的某条记录session.getTransaction().commit();HibernateSessionFactory.closeSession();User user=(User)list;if(user.getPassword().equals(userForm.getPassword())){return true;}else{return false;}}3.对比hql和sql查询方式我们可以发现他们之间的不同:a.首先是查询语句的不同,hql语句from后面跟的类名+类对象,where后用对象的属性做条件,而sql语句from后面跟的是表名,where后用表中字段做条件,这也就是面向对象和面向数据库的一个区别。
多表联查技巧多表联查技巧是在关系型数据库中常用的查询方法之一,它可以通过连接多个表来获取更全面的信息。
下面将介绍一些常用的多表联查技巧。
1. 内连接(Inner Join)内连接是最常用的多表联查方式,它通过匹配两个或多个表中的共有字段来返回满足条件的记录。
例如,我们有两个表A和B,它们都有一个共有字段ID,我们可以使用内连接来获取同时存在于A和B表中的记录。
2. 左连接(Left Join)左连接是指以左边的表为基准,将左边表中的所有记录和右边表中符合条件的记录进行联接。
如果右边表中没有匹配的记录,则会返回NULL值。
左连接常用于获取左边表的所有记录以及与之相关联的右边表的记录。
3. 右连接(Right Join)右连接与左连接类似,只不过以右边的表为基准进行联接。
如果左边表中没有匹配的记录,则会返回NULL值。
右连接常用于获取右边表的所有记录以及与之相关联的左边表的记录。
4. 全连接(Full Join)全连接是左连接和右连接的结合,它将返回两个表中的所有记录,并且会将没有匹配的记录用NULL值填充。
全连接常用于获取两个表的所有记录以及它们之间的关联。
5. 多表连接在实际应用中,我们经常需要联查多个表来获取更丰富的信息。
多表连接可以通过在FROM子句中添加多个表来实现。
例如,我们有三个表A、B和C,它们之间存在关联关系,我们可以使用多表连接来同时获取它们的记录。
6. 子查询子查询是指在一个查询语句中嵌套另一个查询语句。
它可以用于在联查中获取更精确的数据。
例如,我们可以在主查询中联查两个表,然后在子查询中根据条件过滤出需要的数据。
7. 联查条件在进行多表联查时,需要注意联查条件的设置。
联查条件应该能准确地匹配两个或多个表中的共有字段,以确保返回正确的结果。
同时,还可以使用WHERE子句来添加额外的条件进行数据过滤。
8. 别名在多表联查时,为了方便书写和阅读,可以给表或字段设置别名。
别名可以用于简化查询语句,并使其更易于理解。
随着信息化时代的到来,数据同步成为了各种软件系统中常见的需求之一。
特别是在企业级应用开发中,数据库之间的数据同步更是至关重要。
本文将介绍如何在Java中实现两个表数据的同步,帮助开发人员解决相关问题。
一、需求分析在实际开发过程中,我们经常会遇到两个数据库表需要进行数据同步的情况。
一个表用于存储用户信息,另一个表用于存储用户订单信息。
当用户注册新账号或有新的订单产生时,需要将相关数据同步到另一个表中。
这就需要编写程序实现数据同步的功能。
二、解决方案Java作为一种广泛应用的编程语言,有着丰富的类库和框架,能够很好地满足数据同步需求。
我们可以利用Java的JDBC技术连接数据库,通过SQL语句实现数据的读取、插入、更新和删除。
在此基础上,我们可以编写程序定时执行数据同步任务,实现两个表数据的同步。
具体步骤如下:1. 连接数据库我们需要编写Java代码连接两个数据库。
可以使用JDBC提供的Connection接口和DriverManager类来实现数据库连接,具体代码如下:```java// 加载数据库驱动Class.forName(.mysql.jdbc.Driver");// 获取数据库连接Connection connSource =DriverManager.getConnection("jdbc:mysql://localhost:3306/sou rce_db", "root", "xxx");Connection connTarget =DriverManager.getConnection("jdbc:mysql://localhost:3306/targ et_db", "root", "xxx");```在上面的代码中,我们使用了MySQL数据库作为示例,其中source_db和target_db分别为两个需要同步的数据库。
Hibernate查询sql结果⾏数、查询列表的⼏种⽅法⼀、前⾔这个东西,难度⼏乎没有,就是繁琐。
⼀条简单的select count(*) from table_name都能有多种书写⽅式。
总是忘,这⾥记录下。
⼀、通过Criteria 查询查询⾏数:Criteria criteriaCount = getCriteria();criteriaCount = criteriaCount.add(Restrictions.eq("dispatchTaskId", dispatchTaskId));criteriaCount.setProjection(Projections.rowCount());Integer totalCount = ((Long) criteriaCount.uniqueResult()).intValue();查询列表:Criteria criteria = getCriteria();criteria.add(Restrictions.eq("eventId", eventInformationId));List<EventTaskAssignment> list = criteria.list();⼆、通过原⽣sql查询查询⾏数:SQLQuery queryCount = getSession().createSQLQuery("SELECT COUNT(*) FROM incidentInformation WHERE ii.incidentInformationId = :incidentInformationId AND dti.taskstate = :taskstate");queryCount.setParameter("incidentInformationId", incidentInformationId);queryCount.setParameter("taskstate", ETaskStatus.STATUS_INIT.getStatusValue());int count = ((BigDecimal) queryCount.uniqueResult()).intValue();return count;查询列表:1、返回的item为数据库表对应poSQLQuery query = getSession().createSQLQuery(sqlQuery);query.setParameter("userId", userId);query.addEntity(EventTaskAssignment.class);List<EventTaskAssignment> items = query.list();2、返回的item为voSQLQuery query = getSession().createSQLQuery(sqlBuffer.toString());query.setParameter("eventInformationId", eventInformationId);query.addScalar("userId", StandardBasicTypes.STRING);query.addScalar("userName", StandardBasicTypes.STRING);query.setResultTransformer(Transformers.aliasToBean(UserRoles.class));List<UserRoles> list = query.list();三、通过hibernate的查询语⾔查询String countHql = "select count(*) from a where and a.approveResult = :approveResult and a.approverId = :approverId";Query countQuery = getSession().createQuery(countHql);countQuery.setParameter("approverId", approverId);int count = ((Long) countQuery.uniqueResult()).intValue();。
执行救济竞合的实务把握
周玉和彭长林所谓执行救济竞合,是指执行当事人、利害关系人或案外人,就具体执行案件的同一执行行为或执行标的,各自以不同的途径、方式及理由等提出异议,交由人民法院审查裁决的情形。
慧眼辨析和准确把握执行救济竞合,对于及时、准确审查处理执行争议,提高执行效率,保护执行当事人、利害关系人、案外人合法权益具有积极意义。
笔者现侧重从实务的角度,针对执行救济不同路径的竞合情形,就如何在实务中把握谈些心得。
执行实践中执行救济竞合情形,常见的有各不同主体的执行异议救济竞合、利害关系人程序异议与案外人实体异议竞合、消极执行与执行异议及执行监督救济竞合、执行异议与案外人异议及执行监督救济竞合四种情形。
对执行救济竞合情形的不同处理,将在后续救济途径、救济时效、救济功能上产生不同的法律后果。
因此,在司法实务中应当明晰梳辨、认真把握,针对不同情形作出不同处理。
具体可从四个方面审查把关:
一、把好立案受理关
原则上对所有执行当事人、利害关系人、案外人的异议、执行复议、案外人异议之诉等,均应予以受理。
但对同一主体就同一执行事项所提出的异议,则只能选择其中最恰当情形予以立案;如果当事人、利害关系人、案外人已行使异议权、复议权、申请更换执行法院权、诉权以资救济,则无必要启动执行监督立案程序。
反之,则应当启动执行监督立案程序予以执行监督。
对于立案受理这一环节,还应注意:一是审查基本要件,防止恶意异议。
基本要件包括异议主体身份资料,如公民个人的居民身份证或户口簿、法人的机构代码证等;异议书使用书面形式提出,并由异议人签名盖章;相应的基本证据材料,如执行法院的具体执行行为法律文
书、执行行为所违反的法律条文、对执行标的权属凭证或相应权利证明等。
三个基本情况不能同时提供的,一般不予立案受理。
二是审查提起异议、复议或诉讼期间。
对执行异议要求在执行程序结束前提出;对执行程序已经结束的,不能再作执行异议立案。
对所遭受的损害,异议人可通过提起损害赔偿之诉或返还不当得利之诉或者要求执行法院予以国家赔偿;对申请变更执行法院,只能向上一级法院提出,但需适度控制,一般限于被执行人有财产可供执行或有条件执行的案件,且需执行期间满六个月以上(这里的六个月应当剔除公告期间、鉴定评估、异议审查等期间;对裁定不服向上一级法院申请复议期间为十日内,执行当事人、案外人向执行法院提起的许可执行之诉、执行标的异议之诉、分配方案异议之诉,为收到裁定或通知之日起十五日内。
二、把好审查定性关
首先,对执行异议及复议,主要审查执行行为是否违反了法律规定和司法解释,即审查执行行为的合法性。
执行行为的范围主要包括四个方面:执行法院采取的执行措施、强制执行时应当遵守的程序、强制执行中作出的某些法律文书(包括应发出而未发出相应的法律文书,应发出但发出了错误的法律文书,不应发出而发出了某种法律文书等等,如进行民事搜查时未出示搜查令等、其他侵害当事人、利害关系人合法权益的执行行为(如违法追加、变更被执行人等。
上述情形往往相互交织在一起,难以截然分开。
还应当明确,对于新民事诉讼法所规定的对被执行人限制出境、在征信系统记录、在媒体公布不履行义务信息,应当作为一种执行行为对待,对其异议应按执行异议、复议程序审查。
其次,对案外人异议,主要审查案外人对执行标的物有无“所有权或者是其他阻止标的物转让、交付的权利”,即是否有足以排除强制执行的权利。
这种权利不一定都是物权,主要包括所有权、用益物权、担保物权、占有、孳息收取权、债权、依法保全的标的物等。
再次,对异议之诉及再审,主要区分执行标的物与原判决、裁定是否相关联。
如原判决、裁定作为执行依据的生效法律文书,与所执行的标的物直接关联,则需通过审判监督程序对执行依据重新审查。
通常情况下主要是指执行依据载明了交付特定物的法律文书的执行,如判决甲将其房屋、车辆交付给乙,在对房屋、车辆执行时,案外人异议称房屋、车辆属于自己所有,则涉及执行依据效力问题,应当通过审判监督程序办理;如执行标的物与原判决、裁定无关或虽有关联,但非执行依据直接载明的特定物,则需另行通过普通诉讼程序予以解决。
如判决甲应偿还乙50万元借款,执行法院现查封、处置甲的房屋、车辆用于还债,在对房屋、车辆执行时,案外人异议称房屋、车辆属于自己所有,则无需去审查执行依据(因为判决的是债权债务关系,未涉及房屋、车辆争议,而应通过普通诉讼程序解决争议。
三、把好实质处理关
对于执行异议程序救济竞合的处理:不同异议主体对同一执行行为,基于各自理由提出执行异议时,执行法院可以合并审查。
但审查后作出的裁定结果可以相同,也可以不同,有的异议成立应予支持,有的异议不成立应予驳回。
对执行异议与案外人异议救济竞合的处理:此种情形,关键是要准确把握异议人所提理由及依据到底是属案外人异议还是属利害关系人异议。
由于执行行为与执行标的之间往往紧紧相连,两种救济程序也无优劣先后之分,往往难以把握。
处理的基础除准确审查定性外,还需凭借大陆法系执行理论中的“执行形式法原则”,即执行机构对于执行债权人和债务人的范围、被执行人责任财产的识别以及可依非诉讼程序实现的权利类型之确定等事项,对所涉及的实体权利状态的确认无需以诉的形式进行,而是由执行机构根据民事实体规范直接作出相应的形式判断。
在实务中处理的具体办法是:如果执行行为所针对的执行标的权属,显而易见属于异议人而不属于被执行人所有,如果异议人所提起异议的理由是执行行为违法,则应将异议人作为利
害关系人所提执行程序异议予以审查,支持其异议,撤销执行行为;如果异议人所提起异议的理由是主张对执行财产有所有权等实体权利,要求停止执行,则此时应将异议人作为案外人并支持其异议。
如执行标的权属不属于异议人而属于被执行人所有,则仍应视异议人所提出的异议理由不同,而分别视其为利害关系人或案外人,驳回其异议,继续施行执行行为。
如果执行的财产权属不明,属于法律上有争议的标的物,需通过实体审理才能确定的,则不应当作利害关系人的执行异议,而应当作案外人异议予以审查,直至通过异议之诉解决争议。
四、把好案结事了关
在受理和办理执行救济案件过程中,特别是对于案外人异议及异议之诉,应当注意加强执行协调工作。
对于所提异议,如果经审查认为执行行为明显正当、合法,或者执行标的明显属被执行人所有,异议理由明显不能成立,可在做好解释、说服工作的同时,动员其撤回异议。
对坚持不撤回的应及时作出裁决;如果经审查认为,执行行为明显错误,或者执行标的明显属案外人所有,则可要求执行法院迅即自行纠正执行错误,并动员异议人撤回异议结案;对涉及其他实体方面的争议或诉讼,则应当注重协调、调解结案,力争解决问题。
对涉及执行的裁判结果,无论是在初审程序,抑或终局裁判,都应当释明法律、说法说理,让执行法院及相关当事人服判息诉、减少争议。
同时完善送达、原始证据退还等手续,在本阶段、本程序及时结案,做到案结事了。
同时,还应及时告知相应权利。
无论是对执行异议,还是执行复议,无论是对案外人异议,还是对异议人之诉,无论是对变更执行法院申请,还是对执行监督程序,都应在审查完毕后作出裁判结论时,告知执行所涉各方的相应权利。
如当事人、利害关系人在收到裁定后十日内向上一级法院的复议权,当事人、案外人的申请再审权、起诉权,执行法院对上级法院指令自行纠正的复议权,等等。
对于终结性裁判文书,还应交待其法律上的终局效力及相应法律后果。
省人民政府水行政主管部门建立水土保持监测网络,对全省水土流失动态进行监测、预报,省人民政府定期将监测、预报情况予以公告。
县级以上人民政府水行政主管部门及其所属的水土保持监督管理机构,应当建立执法监督体系,对《中华人民共和国水土保持法》和《中华人民共和国水土保持法实施条例》及本办法的执行情况实施监督检查。
水土保持监督人员依法执行公务时,必须持有县级以上人民政府颁发的水土保持监督检查证件,并佩带执法标志。