java - hibernate : Could not determine type for: Integer

标签 java hibernate

运行程序时出现错误,提示无法确定类型:Integer,at table:t_credential,for columns:[org.hibernate.mapping.Column(id)]

我的 t_credential 数据库有一个 PK 列 id,它由应用程序设置(不是自动增量)。

这是我的 XML 映射文件:

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC 
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>

 <class name="com.x.com.core.pojo.TUIDInfo" table="t_pop3_credential_messageuid">
   <id name="id" column="id" type="integer" >
            <generator class="native" />
        </id>
    <property name="messageUID"><column name="messageUID" /></property>
     <many-to-one name="cred" column="credential_id" class="com.x.listener.core.imap.Credential" ></many-to-one>
     </class>

     <class name="com.x.listener.core.imap.Credential" table="t_credential" >
        <id name="id" column="id" type="Integer" >
            <generator class="select" />
        </id>
        <property name="username" column="email" type="String" length="100"   />
        <property name="password" column="password" type="String" length="100"   />
        <property name="mailServer" column="mail_server" type="String" length="100" />
        <property name="protocol" column="protocol" type="String" length="100"  />
        <property name="tenant" column="tenant" type="String"  />
        <property name="host" column="host" type="String" length="100"  />  
    </class>
</hibernate-mapping>

我的 TUID 类(class):

package com.x.com.core.pojo;

import com.x.listener.core.imap.Credential;

public class TUIDInfo {

    private Integer id;
    private String messageUID;// change accordingly
    private Credential cred;



    public TUIDInfo( String messageUID, Credential cred) {
        super();

        this.messageUID = messageUID;
        this.cred = cred;

    }

    public TUIDInfo() {
        super();
    }

    public Integer getid() {
        return this.id;
    }

    public void setid(Integer id) {
        this.id = id;
    }

    public String getMessageUID() {
        return this.messageUID;
    }

    public void setMessageUID(String messageUID) {
        this.messageUID = messageUID;
    }
    public Credential getCred() {
        return this.cred;
    }

    public void setCred(Credential cred ) {
        this.cred = cred;
    }

}

和我的证书类别:

package com.x.listener.core.imap;
public class Credential {
    Integer id;
    private String host;// change accordingly
    private String username;
    private String password;// change accordingly
    private String mailServer;
    private String protocol;
    private String tenant;


    public Credential(Integer id, String host, String username,
            String password, String mailServer, String protocol, String tenant) {
        super();
        this.id = id;
        this.host = host;
        this.username = username;
        this.password = password;
        this.mailServer = mailServer;
        this.protocol = protocol;
        this.tenant = tenant;
    }

    public Credential() {
        super();
    }

    public String getProtocol() {
        return protocol;
    }

    public void setProtocal(String protocol) {
        this.protocol = protocol;
    }

    public int getId() {
        return id;
    }

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

    public String getHost() {
        return host;
    }

    public void setHost(String host) {
        this.host = host;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getMailServer() {
        return mailServer;
    }

    public void setMailServer(String mailServer) {
        this.mailServer = mailServer;
    }

    public String getTenant() {
        return tenant;
    }

    public void setTenant(String tenant) {
        this.tenant = tenant;
    }

    public void setProtocol(String protocol) {
        this.protocol = protocol;
    }

}

最佳答案

尝试将其更改为小写:

<class name="com.x.listener.core.imap.Credential" table="t_credential" >
        <id name="id" column="id" type="integer" >  <!-- Instead of Integer -->
            <generator class="select" />
        </id>

正如您在上面使用的那样:

<class name="com.x.com.core.pojo.TUIDInfo" table="t_pop3_credential_messageuid">
   <id name="id" column="id" type="integer" >
            <generator class="native" />
        </id>

关于java - hibernate : Could not determine type for: Integer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18098673/

相关文章:

java - 如何使用自动化工具检查通过网络复制的文件的完整性?

java - 从线程中更改 boolean 变量时,java中的long gc收集

java - 是否可以在 tomcat 7 中的同一端口上运行多个 Web 应用程序

java - Hibernate 正确的级联映射

java - Spring MVC 与 Hibernate; getCurrentSession() 时嵌套异常为 java.lang.NullPointerException

java - 如何将值从一个 JFrame 传递到另一个 JFrame?

java - 如何在没有安装 IBM lotus 的情况下通过 java 为桌面应用程序访问 .nsf 文件

java - 使用 getBean 而不是 Spring 中的方法注入(inject)

java - 无法添加或更新子行: a foreign key constraint fails using Hibernate Framework

java - Spring Autowiring 仅扫描测试文件