java - postgresql 的 Hibernate 映射问题

标签 java postgresql hibernate

我是 hibernate 新手。我正在尝试映射以下实体,但出现 hibernate 映射异常。非常感谢您的帮助。 请记住,我正在使用 PostgreSQL

package st.malike.auth.server.model;

import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import org.springframework.security.oauth2.common.OAuth2RefreshToken;
import org.springframework.security.oauth2.provider.OAuth2Authentication;


@Entity
public class OAuth2AuthenticationRefreshToken implements Serializable {

//    @Indexed
    @javax.persistence.Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private String id;
    private final String tokenId;
    private final OAuth2RefreshToken oAuth2RefreshToken;
    private final OAuth2Authentication authentication;

    public OAuth2AuthenticationRefreshToken(OAuth2RefreshToken oAuth2RefreshToken, OAuth2Authentication authentication) {
        this.oAuth2RefreshToken = oAuth2RefreshToken;
        this.authentication = authentication;
        this.tokenId = oAuth2RefreshToken.getValue();
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getTokenId() {
        return tokenId;
    }

    public OAuth2RefreshToken getoAuth2RefreshToken() {
        return oAuth2RefreshToken;
    }

    public OAuth2Authentication getAuthentication() {
        return authentication;
    }
}

并得到如下异常

Caused by: org.hibernate.MappingException: Could not determine type for: org.springframework.security.oauth2.common.OAuth2RefreshToken, 
  at table: oauth2authentication_refresh_token, 
  for columns: [org.hibernate.mapping.Column(o_auth2refresh_token)]     
    at org.hibernate.mapping.SimpleValue.getType(SimpleValue.java:396) ~[hibernate-core-5.0.9.Final.jar:5.0.9.Final]
    at org.hibernate.mapping.SimpleValue.isValid(SimpleValue.java:369) ~[hibernate-core-5.0.9.Final.jar:5.0.9.Final]
    at org.hibernate.mapping.Property.isValid(Property.java:225) ~[hibernate-core-5.0.9.Final.jar:5.0.9.Final]
    at org.hibernate.mapping.PersistentClass.validate(PersistentClass.java:595) ~[hibernate-core-5.0.9.Final.jar:5.0.9.Final]
    at org.hibernate.mapping.RootClass.validate(RootClass.java:265) ~[hibernate-core-5.0.9.Final.jar:5.0.9.Final]
    at org.hibernate.boot.internal.MetadataImpl.validate(MetadataImpl.java:329) ~[hibernate-core-5.0.9.Final.jar:5.0.9.Final]
    at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:443) ~[hibernate-core-5.0.9.Final.jar:5.0.9.Final]
    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:879) ~[hibernate-entitymanager-5.0.9.Final.jar:5.0.9.Final]
    ... 162 common frames omitted

最佳答案

如果您没有为属性 oAuth2RefreshToken 保存任何值,请添加注释 @Transient 以忽略与数据库的任何映射。

如果您有一些映射,请将其添加到您的问题中

关于java - postgresql 的 Hibernate 映射问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40801864/

相关文章:

java - Hibernate 中的级联是什么?

mysql - Hibernate 数据库特定的 columnDefinition 值

java - 递归地将ArrayList数据添加到JTable中

java - 将 ArrayList<> 对象传递给扩展 ArrayList 的类

postgresql - Heroku 上的 Postgres 和转储单表转储文件

sql - 如何填补一系列数字之间的空白?

java - 获取 PostgreSQL 的格式化时间字符串

java - GWT RequestFactory 在错误的对象上调用 setter

postgresql - Gitlab 500 错误:PG::ConnectionBad

hibernate - Spring Boot 2.2.2.RELEASE 中的集成测试隔离失败(每次 SpringBootTest 后删除表时出错)