- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
给定:
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name="postType", discriminatorType=DiscriminatorType.STRING)
public class Post {}
@DiscriminatorValue(value = PostType.BUG)
public class BugReport extends Post {}
那是……错误在这个系统中以帖子的形式开始存在。之后,它们可以被提升(?)成为 BugReport。
我正在使用以下方法对此进行更新:
@Transactional
public Post setPostType(Post post, String postType)
{
SQLQuery sql = getSession().createSQLQuery("UPDATE post SET postType = :postType where id = :id");
sql.setString("postType", postType);
sql.setInteger("id", post.getId());
sql.executeUpdate();
getSession().evict(post);
getSession().flush();
Post newPost = get(post.getId());
return newPost;
}
虽然这有效,(帖子类型已更改,并作为 BugReport
从数据库返回)。我很好奇这种方法是否有任何副作用或风险。
最佳答案
Although this works, (the post type is changed, and returned from the db as a BugReport). I'm curious if there are any side effects or risks associated with this approach.
我看到的一个问题是您正在绕过乐观锁定检查,因此更新同一 Post
的并发事务可能会覆盖更改。因此,您可能应该在更新中包含版本检查,如果 executeUpdate
返回的计数不是 1
,则抛出异常。
关于java - Hibernate:与改变 DiscriminatorValue 相关的风险,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3723876/
我们有以下类(class) @Entity @Inheritance(strategy = InheritanceType.SINGLE_TABLE) // optional annotation a
我有两个实体 User 和 Candidat ,其中 Candidat 扩展了类 User ,如下所示: 用户实体: @Entity @Table(name="users") @Inheritance
我有几个实体与具有一个基类的 @DiscriminatorValue 共享同一个数据库表: @Entity(name = "base_details") @DiscriminatorColumn(na
我有这个父类: @Entity @Inheritance(strategy = InheritanceType.JOINED) @Table(name = "BSEntity") @Discrimin
我有一个看起来像这样的实体 @Entity @Inheritance(strategy = InheritanceType.SINGLE_TABLE) @DiscriminatorColumn(nam
给定: @Inheritance(strategy=InheritanceType.SINGLE_TABLE) @DiscriminatorColumn(name="postType", discri
我正在使用具有连接继承和如下所示的数据库结构的 JPA: ACTION --------- ACTION_ID ACTION_MAPPING_ID ACTION_TYPE DELIVERY_CHANN
我有具有连接类型的实体的继承关系。 @Entity @Table(name = "MSM_SUBSCRIPTION") @DiscriminatorColumn(name = "SUBSCRIPTIO
Hibernate 有强大的机制可以使多个实体共享数据库中的同一个表。对我来说,能够获取所有记录(无论子类型如何)将是最重要的。然而这似乎不起作用。 假设我们有一些标准设置: @Entity @Tab
我有以下实体: @Table(name="Animal") @Entity @Inheritance(strategy = InheritanceType.SINGLE_TABLE) @Discrim
在 hibernate 中使用 DiscriminatorValue 注解的最佳场景和时间是什么时候? 最佳答案 这两个链接最能帮助我理解继承概念: http://docs.oracle.com/ja
我正在尝试实现 JPA 实体之间的继承关系。 借用示例: http://openjpa.apache.org/builds/1.0.2/apache-openjpa-1.0.2/docs/manual
我有一个经典的 Hibernate @Inheritance(strategy=InheritanceType.SINGLE_TABLE) 和 @DiscriminatorFormula。它工作正常。
我是一名优秀的程序员,十分优秀!