使用H2进行Hibernate配置时遇到麻烦

时间:2012-05-01 14:19:10

标签: hibernate configuration h2

我正在尝试将Hibernate配置为在H2上工作,但是当我打电话时:
    Configuration cfg = new Configuration().configure();
new Configuration()的呼叫输出以下内容:
    מאי 01, 2012 5:10:41 PM org.hibernate.annotations.common.Version <clinit>
INFO: HCANN000001: Hibernate Commons Annotations {4.0.1.Final}
מאי 01, 2012 5:10:41 PM org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {4.1.1}
מאי 01, 2012 5:10:41 PM org.hibernate.cfg.Environment <clinit>
INFO: HHH000206: hibernate.properties not found
מאי 01, 2012 5:10:41 PM org.hibernate.cfg.Environment buildBytecodeProvider
INFO: HHH000021: Bytecode provider name : javassist

但这不会停止执行......在此之后,对.configure()的调用输出:
    מאי 01, 2012 5:14:39 PM org.hibernate.cfg.Configuration configure
INFO: HHH000043: Configuring from resource: /hibernate.cfg.xml
מאי 01, 2012 5:14:39 PM org.hibernate.cfg.Configuration getConfigurationInputStream
INFO: HHH000040: Configuration resource: /hibernate.cfg.xml
מאי 01, 2012 5:14:39 PM org.hibernate.cfg.Configuration doConfigure
INFO: HHH000041: Configured SessionFactory: null

这些消息是什么意思?

hibernate.cfg.xml中:

<session-factory>

    <!-- Database connection settings -->
    <property name="connection.driver_class">org.h2.Driver</property>
    <property name="connection.url">jdbc:h2:mem:db1;DB_CLOSE_DELAY=-1;MVCC=TRUE</property>
    <property name="connection.username">user</property>
    <property name="connection.password">password</property>

    <!-- JDBC connection pool (use the built-in) -->
    <property name="connection.pool_size">1</property>

    <!-- SQL dialect -->
    <property name="dialect">org.hibernate.dialect.H2Dialect</property>

    <!-- Disable the second-level cache  -->
    <property name="cache.provider_class">org.hibernate.cache.internal.NoCacheProvider</property>

    <!-- Echo all executed SQL to stdout -->
    <property name="show_sql">true</property>

    <!-- Drop and re-create the database schema on startup -->
    <property name="hbm2ddl.auto">create</property>

    <!-- Names the annotated entity class -->
    <mapping class="database.datatypes.Course"/>
    <mapping class="database.datatypes.Distance"/>
    <mapping class="database.datatypes.ExamRange"/>
    <mapping class="database.datatypes.NumExamsOnDate"/>
    <mapping class="database.datatypes.RecommendedSchedule"/>

</session-factory>

表示表格的其中一个类:

@Entity public class Distance {

private Course courseA, courseB;
private Long MinDistance, Cost;

@Id
@GeneratedValue(generator="increment")
@GenericGenerator(name="increment", strategy = "increment")
private Long id;


public Distance() {
    super();
}

public Distance(Course courseA, Course courseB, Long minDistance, Long cost) {
    super();
    this.courseA = courseA;
    this.courseB = courseB;
    MinDistance = minDistance;
    Cost = cost;
}


@Override
public String toString() {
    return "Distance [courseA=" + courseA + ", courseB=" + courseB
            + ", MinDistance=" + MinDistance + ", Cost=" + Cost + "]";
}

public Course getCourseA() {
    return courseA;
}

public void setCourseA(Course courseA) {
    this.courseA = courseA;
}

public Course getCourseB() {
    return courseB;
}

public void setCourseB(Course courseB) {
    this.courseB = courseB;
}

public Long getMinDistance() {
    return MinDistance;
}

public void setMinDistance(Long minDistance) {
    MinDistance = minDistance;
}

public Long getCost() {
    return Cost;
}

public void setCost(Long cost) {
    Cost = cost;
}

public Long getId() {
    return id;
}

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

}

谢谢。

1 个答案:

答案 0 :(得分:1)

如您所见,您提到的消息来自INFO级别。来自此日志记录级别的消息通常可以让您知道底层框架(此处为Hibernate)正在执行的操作。所以,在那种情况下,一切都很好。如果您认为这些消息太令人不安,只需将日志记录级别更改为WARN。