有时我想传入一个对象来表示一个审计层,它的唯一工作是持久化实体(无论什么类型),但由于这是一个公共(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/