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 现象好奇怪呀!