设为首页 加入收藏

TOP

[Nhibernate]SchemaExport工具的使用(二)――创建表及其约束、存储过程、视图(二)
2014-11-23 17:33:34 】 浏览:517
Tags:Nhibernate SchemaExport 工具 使用 创建 及其 约束 存储 过程 视图
0) ,
5 CategorySchema UNIQUEIDENTIFIER null, primary key (ID))
存储过程
在映射文件中提供了database-object元素用来创建和删除数据库对象。
语法格式
1
2 创建存储过程或视图语句等数据库对象
3 删除存储过程或视图语句等数据库对象
4
那么现在我们创建一个查询ProductSchema表的存储过程
复制代码
CREATE PROCEDURE QueryProdcutSchema
AS
SELECT ID,Name FROM ProductSchema
QueryProdcutSchema
复制代码
节点与class节点同一级别。
生成的存储过程如下图
视图
在之前的篇章中,我们创建了VW_CusomterOrder这样的视图。那我们现在通过映射文件创建视图,修改CustomerOrderView.hbm.xml映射文件。
复制代码
1
2
3 CREATE VIEW [dbo].[VW_CusomterOrder]
4 AS
5 SELECT c.CustomerID,c.CustomerName
6 FROM dbo.TB_Customer c INNER JOIN
7 dbo.TB_Order o ON c.CustomerID = o.CustomerID INNER JOIN
8 dbo.TB_OrderProduct op ON o.OrderID = op.OrderID INNER JOIN
9 dbo.TB_Product p ON op.ProductID =p.ProductID
10
11 drop view dbo.VW_CusomterOrder
12
复制代码
测试,会有如下异常
生成的sql
复制代码
1 create table VW_CusomterOrder
2 (CustomerID uniqueidentifier not null unique, CustomerName NVARCHAR(16) null, CustomerAddress NVARCHAR(128) null, OrderID UNIQUEIDENTIFIER not null, OrderDate DATETIME null, primary key (CustomerID))
3
4 CREATE VIEW [dbo].[VW_CusomterOrder]
5 AS
6 SELECT c.CustomerID,c.CustomerName
7 FROM dbo.TB_Customer c INNER JOIN
8 dbo.TB_Order o ON c.CustomerID = o.CustomerID INNER JOIN
9 dbo.TB_OrderProduct op ON o.OrderID = op.OrderID INNER JOIN
10 dbo.TB_Product p ON op.ProductID =p.ProductID
复制代码
观察NHibernate生成SQL语句发现NHibernate利用Class映射自动生成了VW_CusomterOrder表,因为NHibernate见到Class映射就认为是表,它不知道这里映射的是视图,视图和表在映射文件中没有什么区别。我们修改一下这个映射文件,在database-object元素上面再添加一个database-object用于删除NHibernate生成的表。
drop table VW_CusomterOrder
drop table VW_CusomterOrder
这个database-object的意思就是在创建数据库架构时删除NHibernate自动生成的表VW_CusomterOrder,在删除数据库架构时删除表VW_CusomterOrder。
首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇spring mvc DispatcherServlet详.. 下一篇java32为md5加密

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目