hibernate 映射 column name not found 找不到字段 或者是查询出来的数据是重复的,
hibernate 字段映射 会出现很多坑,这几天来新公司接手心的项目,然后做功能时出现了很多坑啊,最坑的是上面两个
这里就记录下
1、首先说 找不到字段
看你的实体和数据库有这个字段没,没有就不用看下去了,如果都有的话,
1.出现这种问题是映射 这个实体跟这个数据表的字段不一样,如果是你其他地方使用而不想跟数据表有关系就可以加上注解(如下)
@Transient
可以不被映射 这是单表情况 如果是多表情况就是有其他表的数据要查出来,但接受的只能有一个实体类吧 (废话),好问题就来了,如果吧那些其他表的字段加到你返回的那个实体里面,那么你使用这个实体的所有查询都要把这些加入的数据放进去,但是有些查询怎么可能要这些字段了,这里有一中解决的办法
放空字段进去,显然这是一个临时解决的方法,如果你想说加上面的注解,呵呵,是不会报找不到字段了,但是这些字段是空值没有与数据库查询出来的数据联系上 。所以也不行。最后一个办法重新写个实体,吧要用的字段写进去,直接看实体类
<span style="font-size:14px;">@Entity
@Table(name = "Order")
public class OrderModel implements java.io.Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "order_id")
private Integer order_id;</span>
注解都要不然是找不到这个实体的,这样比之前的那种好很多。目前由于框架是这么搭建的只能这样做下去了。
第二个问题 查询出来的数据是重复的
不是说sql或者数据问题,是hibernate的问题,
我查的那个表不是我实体的那个表 所以数据会只有第一条一直重复的 ,
解决的办法就是你查询的sql与你映射的实体要一致,这样会不会一直只有重复的一条了。
手残了,好久没有写博客了