我正在将数据插入SQL Server表。在插入过程中,我需要检查是否有任何现有行正在更新,然后更新另一个表,写入更新的列。例如:
表1:插入的新行A1和更新的行A2
表2:应创建两行
<Old Value> <New Value> <Unique Key>
"" A1 PK1 --for insert
"Dummy Val" A2 PK2 --for update
我用的是阿帕奇骆驼,冬眠,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();
}
}
camel 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")
我需要将数据写入表2中,但不确定代码中的位置以及如何写入。感谢您的帮助。如果这个问题已经被问到,请告诉我该链接。
我找到了解决方案,分享给其他人,让他们在遇到类似情况时也能使用
为实体中的第二个表创建了列
@Entity(name = "tableName")
@EntityListeners(value = updateEntityListener.class)
public class ExampleTable{
@Column(name = "col1")
private int col1;
@Transient
private List<Table2> auditInfo = new ArrayList<Table2>();
//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
ex.setAuditInfo(new Object()); //Actual object instead of new Object()
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
ex.setAuditInfo(new Object());
}
}
@PostLoad
public void postLoad(final ExampleTable ex) {
preUpdate = ex.toString();
}
}
最后,生成器更改:
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")
.process(new Processor() {
public void process(Exchange arg0) throws Exception {
List<Table2> info= ((ExampleTable) arg0.getIn().getBody()).getAuditInfo();
if (null != info&& info.size() > 0) {
arg0.getIn().setBody(info);
}else{
arg0.getIn().setBody(new ArrayList<Table2>());
}
}
})
.to("jpa:Table2?entityType=java.util.ArrayList");
我建议使用一种类似于实时审计如何与Envers协同工作的方法。
您要做的是注册各种PostXXXEventListener
实现,以满足您的需要,然后让这些侦听器根据正在处理的当前操作保留新实体。
看看org内部。冬眠事件spi
了解详细信息。
问题内容: 是否可以使用PHP fwrite()将内容附加到.xls文件? 当我使用fwrite()尝试此操作时,生成的文件在Excel 2007中导致错误消息。 我可以使用特定的分隔符来完成此操作吗? 没有第三方库,有可能吗? 问题答案: 您可以使用PhpSpreadsheet库读取现有的Excel文件,向其中添加新的行/列,然后将其写回为真实的Excel文件。 免责声明:我是该库的作者之一。
问题内容: 部署应用程序时,我经常使用Hibernate的功能来创建数据库架构,以简化部署。通过配置hibernate.hbm2ddl.auto属性可以轻松实现。 但是,有时我还需要向数据库中插入一些初始数据,例如root用户。有什么办法可以通过hibernate并加载某种文本文件来实现? 我知道我可以很容易地对将要执行此操作的代码进行编程,但是只是想知道是否已经有一些实用程序可以帮助我通过配置实
问题内容: 我正在循环列表并将其插入数据库中,但它得到的更新记录一个接一个。最后我只在列表中的数据库最后一条记录中看到。 输入名称:Linux,Windows,Mac hibernate.cfg.xml: 这里有3次获得循环并插入数据库。但是以某种方式覆盖了这些值。因为我看到sql插入和更新在控制台中运行。 请帮助我将多个行插入数据库。 问题答案: Hibernate文档中有一章非常好的关于批处理
问题内容: 我正在制作一个混合移动应用程序,我需要存储一些数据,例如,如果它是一个游戏:高分等..到目前为止,它能够使用jquery从JSON文件中读取数据..,但是是否可以写到JSON文件??! 还是有其他方法可以这样做? IDE-Eclipse(插件-IBM Worklight Studio) 只能使用HTML 5以及JS和JQ! 谢谢 (: 问题答案: 您可以将JSON写入本地存储,而只需使
问题内容: 例如,我有一个具有以下内容的文件: 将另一个对象推入此数组以使文件看起来像的JavaScript代码是什么 我要问的原因是我在网上找到了很多有关如何使用AJAX从.json文件中提取数据的信息,但没有使用AJAX将新数据写入.json文件以用其他数据更新.json文件。 任何帮助,将不胜感激! 问题答案: 您必须清楚“ JSON”的含义。 某些人错误地使用术语JSON来指代简单的旧Ja
我正在尝试将以下数据写入csv文件。这些数据是employdetails name1-surname1-place1 名称4-surname4-place4 我希望输出在CSV文件上,一个在另一个下面,在单独的行上。 我写了下面的代码 -KD