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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值