Hibernate:Could not locate cfg.xml resource [hibernate.cfg.xml]

1.Could not locate cfg.xml resource [hibernate.cfg.xml]

做了一個hibernate緩存的測試,使用運行測試用例的時候,報錯找不到cfg.xml配置文件(如hibernate.cfg.xml),是因爲該配置文件應該要放在默認src/main/resources資源目錄下,或者指定的資源目錄下,否則掃描不到該配置文件。
簡單建了兩個實體,寫了一個配置文件hibernate.cfg.xml,該配置文件應該要放在src/main/resources資源目錄下。

參考鏈接:https://stackoerflow.com/questions/37879613/configurationexception-could-not-locate-cfg-xml-resource-hibernate-cfg-xml-in

2. org.hibernate.MappingException: Could not determine type for:

Exception in thread "main" org.hibernate.MappingException: Could not determine type for: com.insanebeans.hibernate.entity.User, at table: BEAN_TICKET, for columns: [org.hibernate.mapping.Column(user)]
at org.hibernate.mapping.SimpleValue.getType(SimpleValue.java:455)
at org.hibernate.mapping.Column.getSqlTypeCode(Column.java:191)
at org.hibernate.mapping.Column.getSqlType(Column.java:231)
at org.hibernate.tool.schema.internal.StandardTableExporter.getSqlCreateStrings(StandardTableExporter.java:96)
at org.hibernate.tool.schema.internal.StandardTableExporter.getSqlCreateStrings(StandardTableExporter.java:30)
at org.hibernate.tool.schema.internal.SchemaCreatorImpl.createFromMetadata(SchemaCreatorImpl.java:316)
at org.hibernate.tool.schema.internal.SchemaCreatorImpl.performCreation(SchemaCreatorImpl.java:166)
at org.hibernate.tool.schema.internal.SchemaCreatorImpl.doCreation(SchemaCreatorImpl.java:135)
at org.hibernate.tool.schema.internal.SchemaCreatorImpl.doCreation(SchemaCreatorImpl.java:121)
at org.hibernate.tool.hbm2ddl.SchemaExport.doExecution(SchemaExport.java:298)
at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:249)
at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:228)
at com.insanebeans.test.TestAutoCreateTable.createDataBase(TestAutoCreateTable.java:51)
at com.insanebeans.test.TestAutoCreateTable.main(TestAutoCreateTable.java:76)

這是我在配置Hibernate自動在數據庫中創建表的配置後,報錯。先看實體類:

User實體:

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

    @JoinColumn(name = "TICKET_ID")
    private List<Ticket> tickets;
}

Ticket實體:

@Entity 
@Table(name="BEAN_TICKET")
public class Ticket {
    ...

    @JoinColumn(name = "USER_ID")
    private User user;

    //getter和setter方法省略
}

在創建BEAN_TICKET表的時候,映射到屬性user時,找不到User的類型,需要指定,解決辦法:

@JoinColumn(name = "TICKET_ID")
@ManyToOne(targetEntity = Ticket.class)
private List<Ticket> tickets;

同樣,在Ticket中:

@JoinColumn(name = "USER_ID")
@ManyToOne(targetEntity=User.class)
private User user;

完整的實體類:

@Entity 
@Table(name="BEAN_TICKET")
public class Ticket {

    @Id
    private Long id;

    private String type;

    @JoinColumn(name = "USER_ID")
    @ManyToOne(targetEntity=User.class)
    private User user;

    //getter和setter方法省略
}
@Entity
@Table(name = "BEAN_USER")
public class User {

    @Id
    private Long id;

    private String name;

    private String address;

    @JoinColumn(name = "TICKET_ID")
    @ManyToOne(targetEntity = Ticket.class)
    private List<Ticket> tickets;

    //getter和setter方法省略
}

參考:https://stackoverflow.com/questions/3774198/org-hibernate-mappingexception-could-not-determine-type-for-java-util-list-at

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章