【问题标题】:found [nvarchar2 (Types#OTHER)], but expecting [varchar2(255 char) (Types#VARCHAR)]找到 [nvarchar2 (Types#OTHER)],但期待 [varchar2(255 char) (Types#VARCHAR)]
【发布时间】:2018-09-03 01:07:52
【问题描述】:

我使用的是 Oracle 数据库 12c,Hibernate 5。 DDL

CREATE TABLE AUTHORITIES 
(
  AUTHORITY NVARCHAR2(64) NOT NULL 
, USERNAME NVARCHAR2(64) 
, CONSTRAINT AUTHORITIES_PK PRIMARY KEY 
  (
    AUTHORITY 
  )
  USING INDEX 
  (
      CREATE UNIQUE INDEX AUTHORITIES_PK ON AUTHORITIES (AUTHORITY ASC) 
      LOGGING 
      TABLESPACE USERS 
      PCTFREE 10 
      INITRANS 2 
      STORAGE 
      ( 
        INITIAL 65536 
        NEXT 1048576 
        MINEXTENTS 1 
        MAXEXTENTS UNLIMITED 
        BUFFER_POOL DEFAULT 
      ) 
      NOPARALLEL 
  )
  ENABLE 
) 
LOGGING 
TABLESPACE USERS 
PCTFREE 10 
INITRANS 1 
STORAGE 
( 
  INITIAL 65536 
  NEXT 1048576 
  MINEXTENTS 1 
  MAXEXTENTS UNLIMITED 
  BUFFER_POOL DEFAULT 
) 
NOCOMPRESS 
NO INMEMORY 
NOPARALLEL;

我有实体

import org.hibernate.annotations.Type;    
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

/**
 * Role entity.
 *
 */
@Entity
@Table(name = "AUTHORITIES")
public class Authorities {    
    @Id
    @Column(name = "AUTHORITY")
    private String authority;    
    @ManyToOne
    @JoinColumn(name = "USERNAME")
    private User user;

    public String getAuthority() {
        return authority;
    }    
    public void setAuthority(String authority) {
        this.authority = authority;
    }    
    public User getUser() {
        return user;
    }    
    public void setUser(User user) {
        this.user = user;
    }    
}

错误:

Caused by: org.springframework.beans.factory.BeanCreationException: 
Error creating bean with name 'getSessionFactory' defined in com.donhuvy.config.AppConfig:
Invocation of init method failed; nested exception is org.hibernate.tool.schema.spi.SchemaManagementException: 
Schema-validation: 
wrong column type encountered in column [AUTHORITY] in table [AUTHORITIES]; found [nvarchar2 (Types#OTHER)], but expecting [varchar2(255 char) (Types#VARCHAR)]

如何解决?

【问题讨论】:

  • 我不是 Java 专业人士。但是一点谷歌搜索给了我这个。看看这是否有帮助。 cedar715.wordpress.com/2009/10/13/…
  • 我这样做了,它不起作用
  • 不工作,你的意思是它又给了同样的错误,还是给你一个不同的错误?另请分享您的代码中发生的变化。

标签: java oracle hibernate oracle12c


【解决方案1】:

我知道这个问题有点老了,但我遇到了同样的问题并解决了它。 只需像这样扩展您的注释:

(...)
@Column(name = "AUTHORITY", columnDefinition = "varchar2")
private String authority; 
(...)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-06-15
    • 2011-05-29
    • 2021-01-04
    • 1970-01-01
    • 1970-01-01
    • 2017-03-26
    • 2018-07-25
    相关资源
    最近更新 更多