Spring数据JPA映射异常没有JDBC类型的方言映射:-9

Spring数据JPA映射异常没有JDBC类型的方言映射:-9,spring,hibernate,jpa,jdbc,Spring,Hibernate,Jpa,Jdbc,我正在尝试使用投影,并得到以下错误。不知道问题是什么 以下是投影图: public interface UserMini { Long getApproverKey(); String getEmailAddress(); String getFirstName(); String getLastName(); Long getUserKey(); String getUserName(); } 以下是存储库中的查询: @RestResour

我正在尝试使用投影,并得到以下错误。不知道问题是什么

以下是投影图:

public interface UserMini {

    Long getApproverKey();
    String getEmailAddress();
    String getFirstName();
    String getLastName();
    Long getUserKey();
    String getUserName();

}
以下是存储库中的查询:

@RestResource(path="getUserMini")
@Query(value="SELECT approverKey, emailAddress, firstName, lastName, userKey, userName  FROM [dbo].BdmUser WHERE userKey = :userKey ", nativeQuery=true)
UserMini getUserMini(@Param("userKey") long userKey);
这是实体

@Table (name="[BdmUser]")
@Entity
public class BdmUser {

@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Long    userKey;

private Long    priceListKey;
private String  firstName;
private String  lastName;
private String  userName;
private String  emailAddress;
private String  password;
private Boolean active;
private Long    approverKey;
private BigDecimal  orderLimit;
private Long    salesOfficeKey;
private Long    reportsToId;
private Boolean requiresOrderApproval;
private Date    lastLoginDate;
private String rowIsCurrent;
private Date rowStartDate;
private Date rowEndDate;

@Column(name="HashByteValueType1", updatable=false, insertable=false)   
private String  hashByteValueType1;
@Column(name="HashByteValueType2", updatable=false, insertable=false)   
private String  hashByteValueType2;
private String  rowChangeReason;
@Column(name="DQScoreKey")
private Integer     dqScoreKey;
private Integer     insertAuditKey;
private Integer     updateAuditKey;

在查询中尝试将NVARCHAR强制转换为VARCHAR

CONVERT(varchar,theNVarcharColumn)

-9是
java.sql.Types.NVARCHAR
,应该很常见。您使用的是什么方言?sqlserver.datasource.database platform=org.hibernate.dial.SQLServerdialect已尝试设置为SQLServer2012Dialect并创建自定义方言,但无效。。。公共类CustomSQLServer2012Dialect扩展了SQLServer2012Dialect{public CustomSQLServer2012Dialect(){super();registerHibernateType(NVARCHAR,StringType.INSTANCE.getName();}}}}谢谢,它解决了JDBC-9问题,但没有返回结果。SQL语句在SSMS中工作。。。。。选择approverKey,CONVERT(varchar,emailAddress)作为emailAddress,CONVERT(varchar,firstName)作为firstName,CONVERT(varchar,lastName)作为lastName,userKey,CONVERT(varchar,userName)作为[dbo]中的用户名。BdmUser其中userKey=13636