我使用带JPA的spring,我有2个模型类
我使用 -
定义了多对多的关系@ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinTable(name = "users_resources", joinColumns = @JoinColumn(name = "user_id", referencedColumnName = "id"), inverseJoinColumns = @JoinColumn(name = "resource_id", referencedColumnName = "id"))
此定义创建了另一个表users_resources。
要在users_resources表中插入数据,REST api只发送用户ID [主键]和资源ID [主键]。
无论如何,我可以在不获取完整用户对象和资源对象的情况下将数据插入users_resources吗?我想使用本机查询,但似乎PersistenceJPAConfig现在可以运行本机INSERT查询。
答案 0 :(得分:2)
如果您知道对象的Id,并且需要对象引用(没有对象详细信息),则可以使用EntityManager.getReference()
User userReference=em.getReference(User.class,userId);
Resource resourceReference=em.getReference(Resource.class,resourceId);
使用引用不会从数据库中提取任何SELECT。