0

私は Wicket を Spring および Hibernate と組み合わせて使用​​しています。少なくともそれが私がやろうとしていることです。問題は、Hibernate アノテーションを使用してテーブルを自動生成することにあります。

構成で多くの変更を試みましたが、構成でテーブルが生成されない理由がわかりません。そして、私が確信していないSpring構成についても、誰かが私を正しい方向に向けることができることを願っています.

これを機能させるために使用しているすべてのファイルをリンクに含めて、構成ファイルの非常に長いリストにならないようにしました。

私は注釈付きの次のクラスを使用していますhttp://schrealex.com/downloads/User.java :

@Entity
@Table(name="user")
public class User {

    @Id
    @Column(name="user_id", unique=true, nullable=false)
    @GeneratedValue(strategy=GenerationType.AUTO)
    private Long id;

    @Column(name="username")
    private String username;

    @Column(name="password")
    private String password;

    @Column(name="firstname")
    private String firstname;

    @Column(name="lastname")
    private String lastname;

    @Column(name="birthDate")
    private Date birthDate;

    @Column(name="email")
    private String email;

    @Column(name="profile_image")
    private String profile_image;

    public User() {

    }

    public User(String username, String password, String email) {
        this.username = username;
        this.password = password;
        this.email = email;

    }

    // Getter and Setter methods

}

pom.xml で説明されている次の依存関係を使用しています。

http://schrealex.com/downloads/pom.xml

applicationContext.xml とプロパティで次の構成を使用しています。

http://schrealex.com/downloads/application.properties

http://schrealex.com/downloads/applicationContext.xml

そして最後に web.xml:

http://schrealex.com/downloads/web.xml

見たいファイルが見つからない場合は、お問い合わせください。

編集 :-

起動ログを追加:

SSL access to the quickstart has been enabled on port 8443
You can access the application using SSL on https://localhost:8443

>>> STARTING EMBEDDED JETTY SERVER, PRESS ANY KEY TO STOP
INFO  - Server                     - jetty-7.6.3.v20120416
INFO  - tandardDescriptorProcessor - NO JSP Support for /, did not find org.apache.jasper.servlet.JspServlet
INFO  - /                          - Initializing Spring root WebApplicationContext
INFO  - ContextLoader              - Root WebApplicationContext: initialization started
INFO  - XmlWebApplicationContext   - Refreshing org.springframework.web.context.support.XmlWebApplicationContext@1c35ce99: display name [Root WebApplicationContext]; startup date [Wed Nov 28 19:53:33 CET 2012]; root of context hierarchy
INFO  - XmlBeanDefinitionReader    - Loading XML bean definitions from class path resource [applicationContext.xml]
INFO  - XmlWebApplicationContext   - Bean factory for application context [org.springframework.web.context.support.XmlWebApplicationContext@1c35ce99]: org.springframework.beans.factory.support.DefaultListableBeanFactory@2a9b5441
INFO  - pertyPlaceholderConfigurer - Loading properties file from URL [file:/C:/Users/CE_REAL/Documents/Development/media-database/target/classes/application.properties]
INFO  - DefaultListableBeanFactory - Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@2a9b5441: defining beans [wicketApplication,placeholderConfigurer,dataSource,transactionManager,transactionInterceptor,managerTemplate,sessionFactory]; root of factory hierarchy
INFO  - Version                    - Hibernate Annotations 3.4.0.GA
INFO  - Environment                - Hibernate 3.2.6
INFO  - Environment                - hibernate.properties not found
INFO  - Environment                - Bytecode provider name : cglib
INFO  - Environment                - using JDK 1.4 java.sql.Timestamp handling
INFO  - Version                    - Hibernate Commons Annotations 3.1.0.GA
INFO  - AnnotationConfiguration    - Hibernate Validator not found: ignoring
INFO  - notationSessionFactoryBean - Building new Hibernate SessionFactory
INFO  - earchEventListenerRegister - Unable to find org.hibernate.search.event.FullTextIndexEventListener on the classpath. Hibernate Search is not enabled.
INFO  - ConnectionProviderFactory  - Initializing connection provider: org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider
INFO  - SettingsFactory            - RDBMS: MySQL, version: 5.5.16-log
INFO  - SettingsFactory            - JDBC driver: MySQL-AB JDBC Driver, version: mysql-connector-java-5.1.21 ( Revision: ${bzr.revision-id} )
INFO  - Dialect                    - Using dialect: org.hibernate.dialect.MySQLDialect
INFO  - TransactionFactoryFactory  - Transaction strategy: org.springframework.orm.hibernate3.SpringTransactionFactory
INFO  - actionManagerLookupFactory - No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended)
INFO  - SettingsFactory            - Automatic flush during beforeCompletion(): disabled
INFO  - SettingsFactory            - Automatic session close at end of transaction: disabled
INFO  - SettingsFactory            - JDBC batch size: 15
INFO  - SettingsFactory            - JDBC batch updates for versioned data: disabled
INFO  - SettingsFactory            - Scrollable result sets: enabled
INFO  - SettingsFactory            - JDBC3 getGeneratedKeys(): enabled
INFO  - SettingsFactory            - Connection release mode: auto
INFO  - SettingsFactory            - Maximum outer join fetch depth: 2
INFO  - SettingsFactory            - Default batch fetch size: 1
INFO  - SettingsFactory            - Generate SQL with comments: disabled
INFO  - SettingsFactory            - Order SQL updates by primary key: disabled
INFO  - SettingsFactory            - Order SQL inserts for batching: disabled
INFO  - SettingsFactory            - Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory
INFO  - ASTQueryTranslatorFactory  - Using ASTQueryTranslatorFactory
INFO  - SettingsFactory            - Query language substitutions: {}
INFO  - SettingsFactory            - JPA-QL strict compliance: disabled
INFO  - SettingsFactory            - Second-level cache: enabled
INFO  - SettingsFactory            - Query cache: disabled
INFO  - SettingsFactory            - Cache provider: org.hibernate.cache.EhCacheProvider
INFO  - SettingsFactory            - Optimize cache for minimal puts: disabled
INFO  - SettingsFactory            - Structured second-level cache entries: disabled
INFO  - SettingsFactory            - Echoing all SQL to stdout
INFO  - SettingsFactory            - Statistics: disabled
INFO  - SettingsFactory            - Deleted entity synthetic identifier rollback: disabled
INFO  - SettingsFactory            - Default entity-mode: pojo
INFO  - SettingsFactory            - Named query checking : enabled
INFO  - SessionFactoryImpl         - building session factory
WARN  - ConfigurationFactory       - No configuration found. Configuring ehcache from ehcache-failsafe.xml  found in the classpath: jar:file:/C:/Users/CE_REAL/.m2/repository/net/sf/ehcache/ehcache/1.2.3/ehcache-1.2.3.jar!/ehcache-failsafe.xml
INFO  - essionFactoryObjectFactory - Not binding factory to JNDI, no JNDI name configured
INFO  - SchemaExport               - Running hbm2ddl schema export
INFO  - SchemaExport               - exporting generated schema to database
INFO  - SchemaExport               - schema export complete
INFO  - ContextLoader              - Root WebApplicationContext: initialization completed in 671 ms
INFO  - ContextHandler             - started o.e.j.w.WebAppContext{/,file:/C:/Users/CE_REAL/Documents/Development/media-database/src/main/webapp/},src/main/webapp
WARN  - WebXmlFile                 - web.xml: No url-pattern found for 'filter' with name 'wicket-spring-hibernate'
INFO  - WebXmlFile                 - web.xml: url mapping found for filter with name wicket-spring-hibernate:
WARN  - WicketFilter               - Unable to determine filter path from filter init-param, web.xml, or servlet 3.0 annotations. Assuming user will set filter path manually by calling setFilterPath(String)
INFO  - Application                - [wicket-spring-hibernate] init: Wicket core library initializer
INFO  - RequestListenerInterface   - registered listener interface [RequestListenerInterface name=IBehaviorListener, method=public abstract void org.apache.wicket.behavior.IBehaviorListener.onRequest()]
INFO  - RequestListenerInterface   - registered listener interface [RequestListenerInterface name=IFormSubmitListener, method=public abstract void org.apache.wicket.markup.html.form.IFormSubmitListener.onFormSubmitted()]
INFO  - RequestListenerInterface   - registered listener interface [RequestListenerInterface name=ILinkListener, method=public abstract void org.apache.wicket.markup.html.link.ILinkListener.onLinkClicked()]
INFO  - RequestListenerInterface   - registered listener interface [RequestListenerInterface name=IOnChangeListener, method=public abstract void org.apache.wicket.markup.html.form.IOnChangeListener.onSelectionChanged()]
INFO  - RequestListenerInterface   - registered listener interface [RequestListenerInterface name=IRedirectListener, method=public abstract void org.apache.wicket.IRedirectListener.onRedirect()]
INFO  - RequestListenerInterface   - registered listener interface [RequestListenerInterface name=IResourceListener, method=public abstract void org.apache.wicket.IResourceListener.onResourceRequested()]
INFO  - Application                - [wicket-spring-hibernate] init: Wicket extensions initializer
INFO  - WebApplication             - [wicket-spring-hibernate] Started Wicket version 6.2.0 in DEVELOPMENT mode
********************************************************************
*** WARNING: Wicket is running in DEVELOPMENT mode.              ***
***                               ^^^^^^^^^^^                    ***
*** Do NOT deploy to your live server(s) without changing this.  ***
*** See Application#getConfigurationType() for more information. ***
********************************************************************
INFO  - WebXmlFile                 - web.xml: url mapping found for filter with name wicket.media-database: [/login/*]
INFO  - Application                - [wicket.media-database] init: Wicket core library initializer
INFO  - Application                - [wicket.media-database] init: Wicket extensions initializer
INFO  - WebApplication             - [wicket.media-database] Started Wicket version 6.2.0 in DEVELOPMENT mode
********************************************************************
*** WARNING: Wicket is running in DEVELOPMENT mode.              ***
***                               ^^^^^^^^^^^                    ***
*** Do NOT deploy to your live server(s) without changing this.  ***
*** See Application#getConfigurationType() for more information. ***
********************************************************************
INFO  - AbstractConnector          - Started SocketConnector@0.0.0.0:8080
INFO  - SslContextFactory          - Enabled Protocols [SSLv2Hello, SSLv3, TLSv1, TLSv1.1, TLSv1.2] of [SSLv2Hello, SSLv3, TLSv1, TLSv1.1, TLSv1.2]
INFO  - AbstractConnector          - Started SslSocketConnector@0.0.0.0:8443

編集 :-

User クラスの名前を MediaUser に、@Table アノテーションの名前を mediaUser に変更して、一部のデータベースで予約されている USER ワードの問題を回避しようとしました。

上記のように、起動ログから私が見つけたのは、エクスポートを実行していると言っているということです。

INFO - SchemaExport - Running hbm2ddl schema export 
INFO - SchemaExport - exporting generated schema to database 
INFO - SchemaExport - schema export complete

また、他のインポートを使用するなど、Hibernate アノテーションへのさまざまなアプローチを試みました。@Table は javax.persistence.Table をインポートすることで使用されるようになりましたが、Hibernate org.hibernate.annotations.table も試しましたが、これまでのところ私の問題の解決策はありません。

4

3 に答える 3

1

私の問題に対する答えを見つけました。注釈は、インスタンス変数またはクラスとそのメソッドのいずれかに設定する必要があり、次のように Serializable を実装する必要があります。

@Entity
public class User implements Serializable {

    @Id
    @GeneratedValue
    private Long id;

    private String username;
    private String password;
    private String firstname;
    private String lastname;
    private Date birthDate;
    private String email;
    private String profileImage;

    public User() {

    }

    public User(String username, String password, String email) {
        this.username = username;
        this.password = password;
        this.email = email;

    }

    // Getter and Setter methods

    @Column
    public getUsername() {
        return username;
    }

    @Column
    public getPassword() {
        return password;
    }

    @Column
    public getFirstname() {
        return firstname;
    }

    @Column
    public getLastname() {
        return lastname;
    }

    @Column
    @Temporal(TemporalType.TIME)
    public getBirthDate() {
        return birthDate;
    }

    @Column
    public getEmail() {
        return email;
    }

    @Column
    public getProfileImage() {
        return profileImage;
    }
}
于 2012-12-20T13:06:33.743 に答える
0

私は同じ問題を抱えていました...私の場合、問題はUSERワードが一部のデータベース用に予約されているためです。

したがって、休止状態の構成ファイルが正しいことを考慮して、すべてのテーブルにプレフィックスを追加するだけで問題は解決しました。

これであなたの問題も解決することを願っています=)

于 2012-11-28T19:03:18.740 に答える