1   /*
2    * (C) Copyright 1989-2012 Trend Micro, Inc.
3    * All Rights Reserved.
4    *
5    * This program is an unpublished copyrighted work which is proprietary
6    * to Trend Micro, Inc. and contains confidential information that is not
7    * to be reproduced or disclosed to any other person or entity without
8    * prior written consent from Trend Micro, Inc. in each and every instance.
9    *
10   * WARNING:  Unauthorized reproduction of this program as well as
11   * unauthorized preparation of derivative works based upon the
12   * program or distribution of copies by sale, rental, lease or
13   * lending are violations of federal copyright laws and state trade
14   * secret laws, punishable by civil and criminal penalties.
15   */
16  
17  package com.trendmicro.grid.acl.mssql;
18  
19  import org.hibernate.Hibernate;
20  import org.hibernate.dialect.SQLServer2005Dialect;
21  import org.hibernate.dialect.SQLServer2008Dialect;
22  import org.hibernate.dialect.function.NoArgSQLFunction;
23  
24  import java.sql.Types;
25  
26  /**
27   * Dialect for MSSQL-2008 with support for Unicode field types.
28   *
29   * @author snake, juergen_kellerer, 2012-02-15
30   */
31  public class MSSQL2008Dialect extends SQLServer2008Dialect {
32  
33  	public MSSQL2008Dialect() {
34  		super();
35  
36  		// Adding support for the XML column type
37  		registerColumnType(Types.SQLXML, "xml");
38  
39  		// Adding support for unicode columns
40  		registerColumnType(Types.NCLOB, "nvarchar(MAX)");
41  		registerColumnType(Types.NVARCHAR, "nvarchar(MAX)"); // set field-type default for NVARCHAR to nvarchar(MAX)
42  		registerColumnType(Types.NVARCHAR, 4000, "nvarchar($l)"); // override default for field lengths <= 4000
43  	}
44  }