Hibernate/JPA在启动时未针对数据库模式进行验证 [英] Hibernate/JPA not validating against DB schema on startup

查看:121
本文介绍了Hibernate/JPA在启动时未针对数据库模式进行验证的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

出于某种原因,休眠状态无法捕获诸如将实体映射到不存在的表之类的问题.我的persistence.xml文件看起来像这样...

For some reason hibernate is not catching issues like mapping entities to tables that do not exist. My persistence.xml file looks like this...

<?xml version="1.0" encoding="UTF-8" ?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
        http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0">

    <!-- A JPA Persistence Unit -->
    <persistence-unit name="printLogixJpaUnit" transaction-type="RESOURCE_LOCAL">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>

        <class>com.printlogix.rp.server.domain.User</class>
        <class>com.printlogix.rp.server.domain.UserImage</class>
        <class>com.printlogix.rp.server.domain.TemplateInstance</class>
        <class>com.printlogix.rp.server.domain.UserOrder</class>
        <class>com.printlogix.rp.server.domain.OrderLineItem</class>
        <class>com.printlogix.rp.server.domain.OrderStatus</class>
        <class>com.printlogix.rp.server.domain.AgencyImage</class>
        <class>com.printlogix.rp.server.domain.Agency</class>
        <class>com.printlogix.rp.server.domain.Brokerage</class>
        <class>com.printlogix.rp.server.domain.SystemTemplate</class>
        <class>com.printlogix.rp.server.domain.TemplateType</class>
        <class>com.printlogix.rp.server.domain.Product</class>
        <class>com.printlogix.rp.server.domain.ProductDefinition</class>
        <class>com.printlogix.rp.server.domain.ExpeditedAddress</class>
        <class>com.printlogix.rp.server.domain.BrokerageUser</class>
        <class>com.printlogix.rp.server.domain.StateProvince</class>
        <class>com.printlogix.rp.server.domain.Country</class>
        <class>com.printlogix.rp.server.domain.AwardClub</class>
        <class>com.printlogix.rp.server.domain.SuperUser</class>
        <class>com.printlogix.rp.server.domain.AgencyUser</class>
        <class>com.printlogix.rp.server.domain.RememberMe</class>
        <class>com.printlogix.rp.server.domain.PasswordResetRequest</class>
        <class>com.printlogix.rp.server.domain.SystemTheme</class>
        <exclude-unlisted-classes>true</exclude-unlisted-classes>

        <properties>
            <property name="hibernate.show_sql" value="true"/>
            <!--Begin Credentials -->
            <property name="hibernate.connection.url" value="jdbc:mysql://localhost/realtorprint_dev?autoReconnect=true"/>
            <property name="hibernate.connection.username" value="test"/>
            <property name="hibernate.connection.password" value="test"/>
            <!--End Credentials -->
            <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
            <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect"/>
        </properties>
    </persistence-unit>

</persistence>

推荐答案

尝试添加值为"validate"的属性"hibernate.hbm2ddl.auto":

Try adding the property "hibernate.hbm2ddl.auto" with value of "validate":

<property name="hibernate.hbm2ddl.auto" value="validate"/>

这篇关于Hibernate/JPA在启动时未针对数据库模式进行验证的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆