Как удалить запись из таблицы, ссылка на которую находится в другой таблице, используя Hibernate - PullRequest
0 голосов
/ 05 октября 2018

Я новичок в Hibernate, я хочу выполнить удаление для одной таблицы, текущая таблица ссылается на другую таблицу.

Пример: Client_Loan - это моя главная таблица, для которой я хочу выполнить удаление, а другуютаблица «Loan_Details».таблица loan_details содержит ссылку foreign_Key на идентификатор client_loan.

Я хочу выполнить удаление таблицы client_loan, если я удаляю таблицу ссуд клиента, ссылки в другой таблице также хотят удалить за один раз, используя Hibernate.скажи мне, как выполнить.Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 05 октября 2018

Сначала удалите из Loan_Details, затем Client_loan

First delete from Loan_Details then Client_loan

int id = 2;
Session session=getSession();  
String hql = "delete from Loan_Details where client_loanid = :id"; 
session.createQuery(hql).setString("id", new Integer(id)).executeUpdate();

hql = "delete from Client_Loan where clientid = :id"; 
session.createQuery(hql).setString("id", new Integer(id)).executeUpdate();
0 голосов
/ 05 октября 2018
You must be having classes like below

@Entity
@Table(name="Client_Loan")
public class ClientLoan {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    private String name;

    @OneToMany(cascade = CascadeType.ALL, 
        mappedBy = "client", orphanRemoval = true)
    private List<Loan_Details> loans = new ArrayList<>();

    public void setName(String name) {
        this.name = name;
    }

    public List<Loan_Details> getComments() {
        return loans;
    }

    public void addComment(Loan_Details loan) {
        loans.add(loan);
    }

}

below for load details

@Entity
@Table(name="Loan_Details ")
public class LoanDetails {


    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    @ManyToOne
    private Client_Loan client;

    public void setPost(Client_Loan post) {
        this.post = post;
    }

    public String getReview() {
        return review;
    }

    public void setReview(String review) {
        this.review = review;
    }
}

Now in ClientLoan in OnetoMany mapping cascade = CascadeType.ALL
it means when you will delete CleintLoan all the LoanDetails will be deleted automatically 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...