Я вставляю данные в таблицу SQL Server. Во время вставки мне нужно проверить, обновляется ли какая-либо существующая строка, а затем обновлять другую таблицу, в которой этот столбец обновляется. Для экс:
Table1: Новая строка вставляется A1 и строки обновляются A2
Table2: две строки должны быть созданыКак записать данные в таблицу после hibernate @EntityListener с помощью Camel JPA
<Old Value> <New Value> <Unique Key>
"" A1 PK1 --for insert
"Dummy Val" A2 PK2 --for update
Я использую Apache верблюдицу, спящий режим, JPA
Основная таблица, в которой вставка данные:
@Entity(name = "tableName")
@EntityListeners(value = updateEntityListener.class)
public class ExampleTable{
@Column(name = "col1")
private int col1;
//getter setter
@Override
public String toString() {
return "data";
}
Слушатель
import javax.persistence.PostLoad;
import javax.persistence.PostPersist;
import javax.persistence.PostUpdate;
public class updateEntityListener{
private String preUpdate = "";
private String postUpdate = "";
@PostPersist
public void postPersist(final ExampleTable ex) {
//Insert data in another table
System.out.println("Row inserted");
}
@PostUpdate
public void postUpdate(final ExampleTable ex) {
postUpdate = ex.toString();
if (!preUpdate.equals(postUpdate)) {
System.out.println("Row Updated");
// Insert in new table, compare from postLoad
}
}
@PostLoad
public void postLoad(final ExampleTable ex) {
preUpdate = ex.toString();
}
}
верблюд Builder (Java DSL)
from("timer:invoke?repeatCount=1")
.log("Processing ${id}")
.toD("https4://URL")
.inheritErrorHandler(true)
.unmarshal()
.json(JsonLibrary.Jackson)
.split(body())
.parallelProcessing()
.process(new MyProcessor())
.to("jpa:ExampleTable")
мне нужно писать данные в table2, но не знаете, где в коде и как писать. Любая помощь приветствуется. Если этот вопрос уже задан, напишите мне на эту ссылку.