小编Mik*_*ike的帖子

将对象保存在数据库中(如果它尚不存在)(Hibernate和Spring)

我正在开发一个Hibernate/Spring应用程序来管理一些电影.

课堂电影与班级类型有很多关系.这两个类都使用GeneratedValue注释生成了id.

通过使用@Cascade(CascadeType.SAVE_UPDATE)通过电影对象保存类型我已经对类型的类型属性(例如它的名称;"Fantasy")设置了唯一约束.

我现在要做的是让Hibernate检查是否已经存在类型为"Fantasy"的类型,如果有,请使用该类型的id而不是尝试插入新记录.(后者显然会抛出错误)

最后我需要的是像select-before-update之类的东西,但更像是select-before-save.

Hibernate中有这样的功能吗?

一些代码:

电影课

@Entity
public class Movie {

@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int id;

private String name;

@Lob
private String description;

@Temporal(TemporalType.TIME)
private Date releaseDate;

@ManyToMany
@Cascade(CascadeType.SAVE_UPDATE)
private Set<Genre> genres = new HashSet<Genre>();

.... //other methods
Run Code Online (Sandbox Code Playgroud)

类型课程

@Entity
public class Genre {

@Column(unique=true)
private String type;

@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int id

....//other methods
Run Code Online (Sandbox Code Playgroud)

spring hibernate

9
推荐指数
1
解决办法
1万
查看次数

使用spring的hibernate的正确方法是什么?

我最近开始使用hibernate和spring.

在开始时,我被告知使用sessionFactory和openSession以及beginTransaction进行数据库调用.

后来我听说dao的,所以我开始使用它创建一个接口,在类中实现这个接口,然后让这个类扩展HibernateDAOSupport.

我认为这是非常可靠的,直到一位同事告诉我这种方式已被弃用,我不应该使用HibernateDAOSupport类.但是在我的dao实现类中使用SessionFactory实例,在新的单独服务类中使用该类的实例.由于这似乎是一个很好的方法,我决定遵循这条道路.

刚才我已经读过这个方法也被新版本的春天所弃用......所以我的问题是:究竟什么是将hibernate和spring结合在一起的正确最新方法?

我也听过关于实体经理的讨论,那是什么意思?

我正在寻找使用它们的一般方法,如果一般规则有任何例外,请提供这些例外的示例.

integration spring hibernate

2
推荐指数
1
解决办法
4947
查看次数

标签 统计

hibernate ×2

spring ×2

integration ×1