萍心nice 2017-11-20 06:28 采纳率: 33.3%
浏览 647

hibernate根据@id的位置不同会出现不同的错误

public class SsoProject implements Serializable{

@Id
@GenericGenerator(name = "idGenerator", strategy = "increment")
@GeneratedValue(generator = "idGenerator")
private Long id;
private User checkuser;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "check_id")
@JsonIgnore
@NotFound(action=NotFoundAction.IGNORE)
public User getCheckuser() {
return checkuser;
}
public void setCheckuser(User checkuser) {
this.checkuser = checkuser;
}
}

public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
如果以上生成主键的注释放在变量上则会将 checkuser 当成普通变量形成sql 语句
但是如果将 注解放在get 方法上则不会,具体是什么原因呢?
@Id
@GenericGenerator(name = "idGenerator", strategy = "increment")
@GeneratedValue(generator = "idGenerator")
public Long getId() {
return id;
}
试了下只有 @id 的情况,错误一致。为何@id 放在变量上会解析出错误的sql语句呢?

如果将@id 放到getId()方法上,则自定义
@Column(name = "bypassapprovalprompt")
private Boolean bypassApprovalPrompt=false;
又会将生成sql语句时又会生成bypass_approval_prompt 现象好奇怪呀!

  • 写回答

1条回答

  • Leuan_7 2018-02-08 14:09
    关注

    新学,提点建议。我记得好像是hibernate的@id注解之类的最好方法相同情况上,即字段或者getter方法上,不然会执行错误。

    评论

报告相同问题?

悬赏问题

  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能