Could not determine type for: java.lang.Date, for columns: [org.hibernate.mapping.Column(CreateTime)] 错误

本文介绍了在使用Hibernate框架进行数据库操作时遇到的一个常见问题:无法确定Java中Date类型的映射。通过具体示例展示了如何在Hibernate配置文件中正确设置日期类型的映射,并解决了由此引发的MappingException。

报错如下:

Exception in thread "main" org.hibernate.MappingException: Could not determine type for: java.lang.Date, for columns: [org.hibernate.mapping.Column(CreateTime)]

 


 at org.hibernate.mapping.SimpleValue.getType(SimpleValue.java:266)
 at org.hibernate.mapping.SimpleValue.isValid(SimpleValue.java:253)
 at org.hibernate.mapping.Property.isValid(Property.java:185)
 at org.hibernate.mapping.PersistentClass.validate(PersistentClass.java:410)
 at org.hibernate.mapping.RootClass.validate(RootClass.java:192)
 at org.hibernate.cfg.Configuration.validate(Configuration.java:1026)
 at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1211)
 at com.berheley.hibernate.TestSave.main(TestSave.java:20)

 

解决之道理:

又犯马路的毛病,java.lang.Date(有这个东西嘛?谁看见lang包下有date了告诉我一声,给我详细解释一下)

这个hbm里我写的错误:

 <property name="createtime" type="java.util.Date" column="CreateTime"/>

出现 `org.hibernate.MappingException: Could not determine type for: java.util.List, at table: t_inv_multistrat, for columns: [org.hibernate.mapping.Column(strat_stylelist)]` 异常,通常是因为 Hibernate 无法确定 `java.util.List` 类型该如何映射到数据库列。 一种可能的原因是实体类映射问题,数据库对应的表并没有对应的字段。参考引用 [2] 的解决方案,可使用 Hibernate 实体类注解让某些属性不映射到数据库,使用 `@Transient` 注解放在属性上即可解决此问题。示例代码如下: ```java import javax.persistence.Transient; import java.util.List; public class TInvMultistrat { // 其他属性和方法 @Transient private List<String> strat_stylelist; // getter 和 setter 方法 public List<String> getStrat_stylelist() { return strat_stylelist; } public void setStrat_stylelist(List<String> strat_stylelist) { this.strat_stylelist = strat_stylelist; } } ``` 如果 `strat_stylelist` 字段需要映射到数据库,可以考虑使用 `@ElementCollection` 注解。示例代码如下: ```java import javax.persistence.ElementCollection; import javax.persistence.Entity; import javax.persistence.Table; import java.util.List; @Entity @Table(name = "t_inv_multistrat") public class TInvMultistrat { // 其他属性和方法 @ElementCollection private List<String> strat_stylelist; // getter 和 setter 方法 public List<String> getStrat_stylelist() { return strat_stylelist; } public void setStrat_stylelist(List<String> strat_stylelist) { this.strat_stylelist = strat_stylelist; } } ```
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值