通用Hibernate DAO [英] Generic Hibernate DAO

查看:93
本文介绍了通用Hibernate DAO的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

感谢它,如果有人可以帮助它。



我的计划是有两层。一个是服务层,另一个是DAO层。服务层将执行业务逻辑,DAO层将执行CRUD数据操作。



有两个名为Person和Order的hibernate实体。这两个实体实现一个BaseEntity接口。想在DAO层写一个泛型方法,以便它可以接受任何实体。



有关如何编写该通用dao方法的任何建议?



pre $ @Entity
@Table(name =PERSON)
public class Person实现BaseEntity,java.io.Serializable {

private int id;
private String firstName;

public Person(){
}

@Id
@Column(name =PERSON_ID)
@GeneratedValue(strategy = GenerationType.AUTO)
public int getId(){
return id;
}

public void setId(int id){
this.id = id;


@Column(name =FIRST_NAME,nullable = false,length = 50)
public String getFirstName(){
return firstName;
}

public void setFirstName(String firstName){
this.firstName = firstName;







 @Entity 
@Table(name =PURCHASE_ORDER)
public class Order实现BaseEntity java.io.Serializable {

private int id ;

public order(){
}

@Id
@Column(name =ORDER_ID)
@GeneratedValue(strategy = GenerationType.AUTO)
public int getId(){
return id;
}

public void setId(int id){
this.id = id;
}

@Transient
@OneToMany(cascade = CascadeType.ALL,fetch = FetchType.EAGER)
public Set< OrderItem> getOrderItems(){
return orderItems;
}

public void setOrderItems(Set< OrderItem> orderItems){
this.orderItems = orderItems;






$ b

你能否建议如何创建一个通用的方法它应该采用Person或Order实体作为输入参数?

解决方案

这里是一篇关于编写可重用泛型DAO类的文章


appreciate it if some one could help on it.

My plan is to have two layers. One is Service layer and second is DAO layer. The service layer will do business logic and DAO layer will do CRUD data operations.

Have two hibernate entities named Person and Order. These two entities implement a BaseEntity interface. Would like to write a generic method in DAO layer, so that it can take any entity.

Any suggestion as how to write that generic dao method?

@Entity
@Table(name = "PERSON")
public class Person implements BaseEntity, java.io.Serializable {

private int id;
private String firstName;

public Person() {
}

@Id
@Column(name = "PERSON_ID")
@GeneratedValue(strategy = GenerationType.AUTO)
public int getId() {
    return id;
}

public void setId(int id) {
    this.id = id;
}

@Column(name = "FIRST_NAME", nullable = false, length = 50)
public String getFirstName() {
    return firstName;
}

public void setFirstName(String firstName) {
    this.firstName = firstName;
}
}


@Entity
@Table(name = "PURCHASE_ORDER")
public class Order implements BaseEntity java.io.Serializable {

private int id;

public Order() {
}

@Id
@Column(name = "ORDER_ID")
@GeneratedValue(strategy = GenerationType.AUTO)
public int getId() {
    return id;
}

public void setId(int id) {
    this.id = id;
}

@Transient
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
public Set<OrderItem> getOrderItems() {
    return orderItems;
}

public void setOrderItems(Set<OrderItem> orderItems) {
    this.orderItems = orderItems;
}
}

Can you please advise as how to create a generic method which should take either Person or Order entity as input parameter?

解决方案

Here's an article on writing a reusable generic DAO class.

这篇关于通用Hibernate DAO的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆