我有 2 个具有相同列的表(Customer 和 CustomerTemp)。我正在从 Customer 表中检索记录并添加到 CustomerTemp 表。检索到的记录存储为 custDetails 对象。我正在使用以下 API:
void saveOrUpdate(String entityName,
Object object)
我已经使用@Entity Annotation 声明了 2 个实体,即 Customer 和 CustomerTemp。实体名称用于 saveOrUpdate API。
session.saveOrUpdate("CustomerTemp", custDetails);
将相同的记录添加/更新到 CustomerTemp 表中。不知何故,休眠正在客户表中添加/更新记录。
根据文档,休眠应该将记录添加到 CustomerTemp 表。不确定缺少什么。
更新:
出于测试目的,我创建了 2 个表(表 1 和表 2)
@Entity(name="mytable1")
public class table1 implements Serializable {
private static final long serialVersionUID = 3627342236515154416L;
@Id
@GeneratedValue
private int id;
@Column(length=20)
private String Name;
// Getters and setters...
}
@Entity(name="mytable2")
public class table2 implements Serializable {
private static final long serialVersionUID = -2203149737718957786L;
@Id
@GeneratedValue
private int id;
@Column(length=20)
private String Name;
// Getters and setters...
}
现在我已经使用 table1 创建了对象,并尝试将 saveOrUpdate 与 myTable2 实体一起使用,期望该记录将保存在 table2 中。但无论 saveOrUpdate 中提供的实体名称如何,记录始终保存到 table1。
Session session = getSessionFactory().getCurrentSession();
Transaction tx ;
table1 tb1 = new table1();
tb1.setName("Shirish");
tx = session.beginTransaction();
session.saveOrUpdate("mytable2", tb1);
tx.commit();
问候, - Shirish