2012-05-01 66 views
0

我想配置Hibernate工作在H2,但是Hibernate配置我的呼喚:
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
故障與H2

但是這並未」停止執行......在此之後,調用.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; 
} 

}

謝謝。

+0

這是休眠的正常日誌輸出,沒有什麼不對的吧。究竟是什麼問題? – axtavt

回答

1

正如你所看到的,你所提到的消息是從信息層面。來自這個日誌級別的消息通常會讓你知道底層框架(這裏是Hibernate)在做什麼。所以,在這種情況下,一切都很好。如果您認爲這些消息太令人不安,只需將日誌級別更改爲WARN等。

+1

除非我記錯了,'DEBUG'甚至比'INFO'更健談......如果你想少消息,你應該使用'WARN'(只記錄警告和錯誤)。 –

+0

哎呀,我的錯!你是絕對正確的。無論如何,重點是@Yonatan K可以簡單地改變日誌級別以減少日誌文件的冗長度。 – kyiu

+0

你是對的,重點是改變日誌級別。我想如果你更新你的答案是有道理的(我不想這樣做,因爲它是你的答案)。 –