Java Springbean创建异常

Java Springbean创建异常,java,spring,hibernate,Java,Spring,Hibernate,要理解Spring中真正的问题是什么,需要对结构有很好的了解。我对这个问题研究了两天,找不到任何解决办法。在我的项目中,在构建Hibernate时使用它会显示以下错误消息: 2013-01-17 06:28:50,251 INFO [org.hibernate.cfg.SettingsFactory] - Database -> name : MySQL version : 5.0.96-community-nt major : 5 minor : 0 2013-01-17

要理解Spring中真正的问题是什么,需要对结构有很好的了解。我对这个问题研究了两天,找不到任何解决办法。在我的项目中,在构建Hibernate时使用它会显示以下错误消息:

2013-01-17 06:28:50,251 INFO [org.hibernate.cfg.SettingsFactory] - Database ->
   name : MySQL
version : 5.0.96-community-nt
  major : 5
  minor : 0
2013-01-17 06:28:50,251 INFO [org.hibernate.cfg.SettingsFactory] - Driver ->
   name : MySQL-AB JDBC Driver
version : mysql-connector-java-5.1.12 ( Revision: ${bzr.revision-id} )
  major : 5
  minor : 1
2013-01-17 05:13:45,060 ERROR [org.springframework.web.context.ContextLoader] - Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'blogController': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'langService': 
Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'langDao' defined in URL [jar:file:/C:/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/NCFrameworkAdmin/WEB-INF/lib/NCFramework-0.0.1-SNAPSHOT.jar!/com/ns/commerce/framework/lang/dao/LangDaoImpl.class]: 
Unsatisfied dependency expressed through constructor argument with index 0 of type [org.hibernate.SessionFactory]: : Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/spring/admin-hibernate.xml]: Invocation of init method failed; nested exception is org.hibernate.HibernateException: Wrong column type in db.nc_alert_log for column alerted. Found: bit, expected: TINYINT(1) DEFAULT 0; nested exception is org.springframework.beans.factory.BeanCreationException: 
Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/spring/admin-hibernate.xml]: Invocation of init method failed; nested exception is org.hibernate.HibernateException: Wrong column type in db.nc_alert_log for column alerted. Found: bit, expected: TINYINT(1) DEFAULT 0
有趣的是blogController、langServices和LangDao是相关的,但是它们对“nc_alert_log”表一无所知

LangDaoImpl

package com.ns.commerce.framework.lang.dao;
import org.hibernate.Criteria;
import org.hibernate.SessionFactory;
import org.hibernate.criterion.Restrictions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Repository;
import com.ns.commerce.framework.lang.model.Lang;
import com.ns.commerce.framework.generic.dao.GenericDAOImpl;

@Repository("langDao")
public class LangDaoImpl extends GenericDAOImpl<Lang, Long> implements LangDao {

@Autowired
public LangDaoImpl(@Qualifier("sessionFactory") SessionFactory sessionFactory) {
    this.setSessionFactory(sessionFactory);
}

@Override
public Lang findByLocaleCode(String localeCode) {
    Criteria criteria = getCriteria();
    criteria.add(Restrictions.eq("localeCode", localeCode));        
    return findByCriteriaFirst(criteria);       
}

@Override
public Lang findBySubdomain(String subdomain) {
    Criteria criteria = getCriteria();
    criteria.add(Restrictions.eq("subdomain", subdomain));
    return findByCriteriaFirst(criteria);       
}

@Override
public Lang findDefaultLang() {
    Criteria criteria = getCriteria();
    criteria.add(Restrictions.eq("defaultFlag", true));
    return findByCriteriaFirst(criteria);       
}
}
    @Column(name="alerted", columnDefinition = "TINYINT(1) DEFAULT 0")
private int alerted;
<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>NC_Core</artifactId>
<groupId>com.ns.commerce</groupId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>NCFrameworkAdmin</artifactId>
<packaging>war</packaging>
<name>NCFrameworkAdmin Maven Webapp</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
    <dependency>
        <groupId>com.nc.commerce</groupId>
        <artifactId>NCFramework</artifactId>
    </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <exclusions>
                <!-- Exclude Commons Logging in favor of SLF4j -->
                <exclusion>
                    <groupId>commons-logging</groupId>
                    <artifactId>commons-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-core</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-web</artifactId>
        </dependency>                       
        <dependency>
            <groupId>org.springframework.security</groupId>         
            <artifactId>spring-security-config</artifactId>         
        </dependency>

        <!-- Logging -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>jcl-over-slf4j</artifactId>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>javax.mail</groupId>
                    <artifactId>mail</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>javax.jms</groupId>
                    <artifactId>jms</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.sun.jdmk</groupId>
                    <artifactId>jmxtools</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.sun.jmx</groupId>
                    <artifactId>jmxri</artifactId>
                </exclusion>
            </exclusions>
            <scope>runtime</scope>
        </dependency>

        <!-- Servlet -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
        </dependency>
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
        </dependency>


        <!-- Joda Time Library -->
        <dependency>
            <groupId>joda-time</groupId>
            <artifactId>joda-time</artifactId>
        </dependency>

        <!-- Jackson JSON Mapper -->
        <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-mapper-asl</artifactId>
        </dependency>

        <!--Regular Expression Libraries -->
        <dependency>
            <groupId>oro</groupId>
            <artifactId>oro</artifactId>
        </dependency>
        <dependency>
            <groupId>jakarta-regexp</groupId>
            <artifactId>jakarta-regexp</artifactId>
        </dependency>

        <!-- Commons validator -->
        <dependency>
            <groupId>commons-validator</groupId>
            <artifactId>commons-validator</artifactId>
        </dependency>           

        <!-- Tiles -->
        <dependency>
            <groupId>org.apache.tiles</groupId>
            <artifactId>tiles-jsp</artifactId>
        </dependency>

        <!-- AOP dependency -->
        <dependency>
            <groupId>cglib</groupId>
            <artifactId>cglib</artifactId>
        </dependency>

        <dependency>
            <groupId>c3p0</groupId>
            <artifactId>c3p0</artifactId>
        </dependency>
  </dependencies>
<build>
<finalName>NCFrameworkAdmin</finalName>
在数据库上:Alerted Column>TINYINT(1),deafolt值为0

DB.properties

    hibernate.hbm2ddl.auto=validate
#hibernate.hbm2ddl.auto=create-drop
hibernate.hbm2ddl.import_files=/import_standard.sql
hibernate.show_sql=false
hibernate.format_sql=true
hibernate.generate_statistics=false
hibernate.use_sql_comments=true
hibernate.query.factory_class=org.hibernate.hql.ast.ASTQueryTranslatorFactory
hibernate.cache.use_query_cache=true
hibernate.cache.region.factory_class=net.sf.ehcache.hibernate.SingletonEhCacheRegionFactory
hibernate.cache.use_second_level_cache=true
#-------------------------------------------------------------------------------
# MySQL Settings

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/asd?autoReconnect=true
jdbc.username=asd
jdbc.password=asd

# Property that determines which Hibernate dialect / MySQL5Dialect || MySQLDialect
hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
Pom.xml

package com.ns.commerce.framework.lang.dao;
import org.hibernate.Criteria;
import org.hibernate.SessionFactory;
import org.hibernate.criterion.Restrictions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Repository;
import com.ns.commerce.framework.lang.model.Lang;
import com.ns.commerce.framework.generic.dao.GenericDAOImpl;

@Repository("langDao")
public class LangDaoImpl extends GenericDAOImpl<Lang, Long> implements LangDao {

@Autowired
public LangDaoImpl(@Qualifier("sessionFactory") SessionFactory sessionFactory) {
    this.setSessionFactory(sessionFactory);
}

@Override
public Lang findByLocaleCode(String localeCode) {
    Criteria criteria = getCriteria();
    criteria.add(Restrictions.eq("localeCode", localeCode));        
    return findByCriteriaFirst(criteria);       
}

@Override
public Lang findBySubdomain(String subdomain) {
    Criteria criteria = getCriteria();
    criteria.add(Restrictions.eq("subdomain", subdomain));
    return findByCriteriaFirst(criteria);       
}

@Override
public Lang findDefaultLang() {
    Criteria criteria = getCriteria();
    criteria.add(Restrictions.eq("defaultFlag", true));
    return findByCriteriaFirst(criteria);       
}
}
    @Column(name="alerted", columnDefinition = "TINYINT(1) DEFAULT 0")
private int alerted;
<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>NC_Core</artifactId>
<groupId>com.ns.commerce</groupId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>NCFrameworkAdmin</artifactId>
<packaging>war</packaging>
<name>NCFrameworkAdmin Maven Webapp</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
    <dependency>
        <groupId>com.nc.commerce</groupId>
        <artifactId>NCFramework</artifactId>
    </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <exclusions>
                <!-- Exclude Commons Logging in favor of SLF4j -->
                <exclusion>
                    <groupId>commons-logging</groupId>
                    <artifactId>commons-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-core</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-web</artifactId>
        </dependency>                       
        <dependency>
            <groupId>org.springframework.security</groupId>         
            <artifactId>spring-security-config</artifactId>         
        </dependency>

        <!-- Logging -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>jcl-over-slf4j</artifactId>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>javax.mail</groupId>
                    <artifactId>mail</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>javax.jms</groupId>
                    <artifactId>jms</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.sun.jdmk</groupId>
                    <artifactId>jmxtools</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.sun.jmx</groupId>
                    <artifactId>jmxri</artifactId>
                </exclusion>
            </exclusions>
            <scope>runtime</scope>
        </dependency>

        <!-- Servlet -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
        </dependency>
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
        </dependency>


        <!-- Joda Time Library -->
        <dependency>
            <groupId>joda-time</groupId>
            <artifactId>joda-time</artifactId>
        </dependency>

        <!-- Jackson JSON Mapper -->
        <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-mapper-asl</artifactId>
        </dependency>

        <!--Regular Expression Libraries -->
        <dependency>
            <groupId>oro</groupId>
            <artifactId>oro</artifactId>
        </dependency>
        <dependency>
            <groupId>jakarta-regexp</groupId>
            <artifactId>jakarta-regexp</artifactId>
        </dependency>

        <!-- Commons validator -->
        <dependency>
            <groupId>commons-validator</groupId>
            <artifactId>commons-validator</artifactId>
        </dependency>           

        <!-- Tiles -->
        <dependency>
            <groupId>org.apache.tiles</groupId>
            <artifactId>tiles-jsp</artifactId>
        </dependency>

        <!-- AOP dependency -->
        <dependency>
            <groupId>cglib</groupId>
            <artifactId>cglib</artifactId>
        </dependency>

        <dependency>
            <groupId>c3p0</groupId>
            <artifactId>c3p0</artifactId>
        </dependency>
  </dependencies>
<build>
<finalName>NCFrameworkAdmin</finalName>

4.0.0
NC_核心
商务部
0.0.1-快照
NCFrameworkAdmin
战争
NCFrameworkAdmin Maven Webapp
http://maven.apache.org
UTF-8
com.nc.commerce
网络控制框架
org.springframework
spring上下文
公用记录
公用记录
org.springframework
SpringWebMVC
org.springframework.security
spring安全内核
org.springframework.security
spring安全网
org.springframework.security
spring安全配置
org.slf4j
slf4j api
org.slf4j
jcl-over-slf4j
org.slf4j
slf4j-log4j12
log4j
log4j
javax.mail
邮件
javax.jms
jms
com.sun.jdmk
jmxtools
com.sun.jmx
jmxri
运行时
javax.servlet
servlet api
javax.servlet.jsp
jsp api
javax.servlet
jstl
乔达时间
乔达时间
org.codehaus.jackson
杰克逊地图绘制者
奥罗
奥罗
雅加达正则表达式
雅加达正则表达式
通用验证器
通用验证器
org.apache.tiles
平铺jsp
cglib
cglib
c3p0
c3p0
NCFrameworkAdmin

如果需要任何其他来源,请评论

Wrong column type in db.nc_alert_log for column alerted.   
Found: bit, expected: TINYINT(1) DEFAULT 0
造成问题的原因。检查数据库中的
alerted
列的类型,并确保在
AlertLog.java
中使用相同的列


造成问题的原因。检查数据库中的
alerted
列的类型,并确保在
AlertLog中使用相同的列。java

nc\u alert\u log和LangDao没有直接关系,但LangDao和hibernate sessionFactory有直接关系。无法创建sessionFactory,因为数据库定义错误。eror表示数据库中的列类型不是TINYINT,而是BIT(布尔)。这就是sessionFactory无法启动的原因。没有sesionFactory,就无法创建LangDao等等。

nc\u alert\u log和LangDao没有直接关系,但LangDao和hibernate sessionFactory有直接关系。无法创建sessionFactory,因为数据库定义错误。eror表示数据库中的列类型不是TINYINT,而是BIT(布尔)。这就是sessionFactory无法启动的原因。没有sesionFactory,就无法创建LangDao等等

private int alerted;
尝试更改为:

private boolean alerted;
尝试更改为:

private boolean alerted;

如何创建数据库?您是使用hibernate生成/更新/创建模式,还是已有表?我猜
AlertLog
映射到
nc\u alert\u log
。请看一下alerted的列定义,我认为它是bit而不是tinyint,这是导致错误的原因。请仔细检查您是否已将hibernate配置为正确的方言,以匹配您正在使用的数据库。András:我正在使用现有的数据库。Ian:INFO[org.hibernate.cfg.SettingsFactory]-数据库->名称:MySQL版本:5.0.96-community-nt主修:5小修:0 2013-01-17 05:13:43476信息[org.hibernate.cfg.SettingsFactory]-驱动程序->名称:MySQL AB JDBC驱动程序版本:MySQL-connector-java-5.1.12(版本:${bzr.Revision id})大调:5小调:1我试着换方言。从hibernate.dialogue=org.hibernate.dialogue.mysql5dialogue到hibernate.dialogue=org.hibernate.dialogue.mysqldialogue,但不起作用。如何创建数据库?您是使用hibernate生成/更新/创建模式,还是已有表?我猜
AlertLog
映射到
nc\u alert\u log
。请看一下alerted的列定义,我认为它是bit而不是tinyint,这是导致错误的原因。请仔细检查您是否已将hibernate配置为正确的方言,以匹配您正在使用的数据库。András:我正在使用现有的数据库。Ian:INFO[org.hibernate.cfg.SettingsFactory]-数据库->名称:MySQL版本:5.0.96-community-nt主修:5小修:0 2013-01-17 05:13:43476信息[org.hibernate.cfg.SettingsFactory]-驱动程序->名称:MySQL AB JDBC驱动程序版本:MySQL-connector-java-5.1.12(版本:${bzr.Revision id})大调:5小调:1我试着换方言。从hibernate.dialogue=org.hibernate.dialogue.mysql5dialogue到hibernate.dialogue=org.hibernate.dialogue.MySQLDi