JPA仅在OneToOne中删除子项,而不是父项

时间:2017-05-09 18:45:50

标签: jpa spring-data spring-data-jpa

我有一个关于ORM与JPA Spring Data关系的快速问题。

我有

AuthToken.java:

if ($var == 1)
    $where = "agentid != ''";
else
    $where = "agentid like ''";

$sql = 
" SELECT *
    FROM suppliers
  WHERE                       
    product_categories LIKE '%$product_categories1%'                        
  AND $where ";

User.java:

@OneToOne(optional=true, fetch = FetchType.EAGER, cascade=CascadeType.ALL, mappedBy="authToken")
private User user;

我的观点是,当令牌过期时,AuthToken应该被清除。

尝试使用CrudRepository删除" constraint / foreignkey"错误,因为它尝试使用CascadeType.ALL删除BOTH PARENT + CHILD。

我只想删除TOKEN(孩子),而不是用户。

有没有正确的方法来写出来?

我最终做的是:@OneToOne(optional=true, fetch = FetchType.EAGER, cascade=CascadeType.ALL) @JoinColumn( name="authorizationId", unique=true, nullable=true, updatable=true) private AuthorizationToken authToken;

我无法使用AuthRepo.delete或AuthRepo.save。

使用"删除"不能正常工作。

0 个答案:

没有答案