java - 给定一个 java 对象,我可以确认它是一个可由 hibernate 持久化的 bean

标签 java hibernate reflection

有时我想传入一个对象来表示一个审计层,它的唯一工作是持久化实体(无论什么类型),但由于这是一个公共(public) API,我想确定传入的object 是一个 hibernate 实体 bean 然后只尝试 saveOrUpdate()

最佳答案

我确信在运行时您可以使用某种jedi-reflection-trick 来查明您的实体是否是 Hibernate 实体(我不推荐这种方法),但是,在在正常情况下,如果它不是 hibernate 实体,你不必担心,Session.saveOrUpdate() 方法会抛出一个 HibernateException 来解释它无法保存的原因,/或更新它。

您无法采取任何措施来阻止使用任意对象类型调用您的公共(public)方法。您可以做的是记录您的 API,以了解它期望的实体类型以及如果传递给它的不同内容时产生的行为。

关于java - 给定一个 java 对象,我可以确认它是一个可由 hibernate 持久化的 bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3391530/

相关文章:

Java Excel API JXL - 读取格式为时间的单元格

java - 帮助重写 HQL 查询(Hibernate 查询语言)

java - 对存储在 var 中的 Java 类调用静态方法

java - 如何在java中转换具有 "ref ids"和 "ids"的XML文件

java - 类路径顺序因 JUnit 运行程序而异

oracle - Oracle:SQL未正确结束

go - 将反射值转换到 golang 中?

c# - .NET Core 中的程序集加载

java - 是否可以将java类对象序列化为类文件?

java - Oracle 一对多引用触发器