如何保存PDF文件使用NHibernate和SQL Server 2005

Pab*_*dez 2 .net sql-server pdf nhibernate

我正在开发一个webapp,用户有机会以pdf格式上传他的简历.我正在使用NHibernate作为数据映射器和MS SQL SERVER 2005.

我希望能够将.pdf文件保存到给定的表格......任何想法?

非常感谢你!

huo*_*o73 5

我们正在使用"原始"Java Hibernate3.您只需将可持久类的字节数组属性映射到Type"image"的列.

package com.hibernate.pdf.sample;

public class TPDFDocument implements java.io.Serializable {


        private Integer pdfDocumentId;
        private byte[] document;


        public Integer getPdfDocumentId() {
            return this.pdfDocumentId;
        }

        public void setPdfDocumentId(Integer pdfDocumentId) {
            this.pdfDocumentId = pdfDocumentId;
        }

        public byte[] getDocument() {
            return this.document;
        }

        public void setDocument(byte[] document) {
            this.document = document;
        }

}
Run Code Online (Sandbox Code Playgroud)

Hibernate映射:

<hibernate-mapping>
    <class name="com.hibernate.pdf.sample.TPDFDocument" table="T_PDFDocument">
        <id name="pdfDocumentId" type="integer">
            <column name="pdfDocumentId" />
            <generator class="identity" />
        </id>
        <property name="document" type="binary">
            <column name="document" not-null="true" />
        </property>
    </class>
</hibernate-mapping>
Run Code Online (Sandbox Code Playgroud)

表创建:

CREATE TABLE [dbo].[T_PDFDocument](
    [pdfDocumentId] [int] IDENTITY(1,1) NOT NULL,
    [document] [image] NOT NULL,
CONSTRAINT [PK_PDFDocument] PRIMARY KEY CLUSTERED 
(
    [pdfDocumentId] ASC
)
Run Code Online (Sandbox Code Playgroud)

您所要做的就是将原始字节中的文档读入数组并保留它.在我们的情况下,文档将不会大于1MB,因此将整个内容放入字节数组不会导致性能问题.也许这个解决方案对于非常大的文档来说是不可行的.

我想使用NHibernate实现和C#解决方案看起来非常相似.