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