作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个实体 Student
这是 @ManyToOne
与另一个实体 School
,哪里School
预先存在于数据库中并且已修复。
实体User
:
@Data
@Entity(name = "user")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@Column(nullable = false)
private String username;
@ManyToOne
private School school;
}
实体School
:
@Data
@Entity(name = "school")
public class School {
@Id
@Column(unique = true, nullable = false)
private int id;
@Column(nullable = false)
private String name;
private String shorten;
@JsonProperty(value = "logo_url")
private String logoUrl;
private float longitude;
private float latitude;
@Column(nullable = false)
private boolean opened;
}
添加用户时,我从 Postman 发布以下 json:
{
"username": "abcd",
"school_id": 2
}
那么,
School school = new School();
school.setId(2); //"school_id" above
User user = new User();
user.setUsername("abcd");
user.setSchool(school);
userRepository.save(user);
因为我认为要添加一个新的user
,只有School
id
就足够了,没有其他School
需要参数。但每次我运行时,它都会运行 select
选择 School
的所有字段的语句通过id
之前save()
。
我的问题是:如何去掉这个不必要的操作,以便在save()
之前,没有必要select
? (我知道可以实现自定义sql语句,但是我感觉这会破坏JPA的面向对象)
最佳答案
在实体类上使用以下注释
@SelectBeforeUpdate(value=false)
关于java - JPA:如何在 save() 之前删除不必要的 SELECT?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60927756/
我是一名优秀的程序员,十分优秀!