为什么jpa不按照我的sql语句执行查找?

我因为要链表查询,所以在主表a表里,增加了一个b表需要链表查出来的字段,设好set get后,链表查是查出来了,可是麻烦来了

首先,插入a表的时候,那个字段麻烦,还好我解决了

然后,就是单条查询,用作修改的时候,发现无论咋样,查询的时候都把我那链表的那个字段放进去,我这种需求下不需要链表那个字段的。我查hebnet的注解,没发现哪个注解能够实现我这种需求,所以我想了另一个办法,就是执行原始sql语句,然后把我想要的字段写出来,这样就不会查找那个不存在的了吧?
图片描述

好吧,如图,这咋搞?我明明没查找那个字段,却在sql里面出现了,然后报错,求教各位老哥如何解决呢?

我的bean里有条本表不存在的字段,然后我想查找本表本来的内容时,如何才能成功呢?

不重新写个bean哈,还有就是不用Onemany那些注解,就用sql解决可有法子呢?

谢谢

复制下我的bean,catname这个字段,是我链表的字段,单条记录查询的时候我不需要的

@Entity
@Table(name = "news")

public class News {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)

private Integer id;

private String xname;

private String xcontent;

// @CreatedDate
// private Date addtime;

private String image;

private Integer click;
private String descript;
private String keyword;

private Integer catid;

@Column(insertable = false)
@Transient
private String catname;

public String getCatname() {
    return catname;
}

public void setCatname(String catname) {
    this.catname = catname;
}

private Integer type;

public Integer getType() {
    return type;
}

public void setType(Integer type) {
    this.type = type;
}

public Integer getId() {
    return id;
}

public void setId(Integer id) {
    this.id = id;
}

public String getXname() {
    return xname;
}

public void setXname(String xname) {
    this.xname = xname;
}

public String getXcontent() {
    return xcontent;
}

public void setXcontent(String xcontent) {
    this.xcontent = xcontent;
}

// public Date getAddtime() {
// return addtime;
// }
//
// public void setAddtime(Date addtime) {
// this.addtime = addtime;
// }

public String getImage() {
    return image;
}

public void setImage(String image) {
    this.image = image;
}

public Integer getClick() {
    return click;
}

public void setClick(Integer click) {
    this.click = click;
}

public String getDescript() {
    return descript;
}

public void setDescript(String descript) {
    this.descript = descript;
}

public String getKeyword() {
    return keyword;
}

public void setKeyword(String keyword) {
    this.keyword = keyword;
}

public Integer getCatid() {
    return catid;
}

public void setCatid(Integer catid) {
    this.catid = catid;
}

阅读 1.7k
1 个回答
@Transient

不需要数据库映射的字段加个注解

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题