3
我有一个方法,在我的代码中使用3-4次,来自不同的位置。通常会为此引入静态实用程序方法,我也这样做。公用数据库/ dao方法应该是静态的吗?
但我不知道这是一个很好的做法,如果这个静态方法执行一些数据库/道数逻辑?以下是一个伪代码示例:
class DaoUtiliy {
public static void updateToDB(List a, List b) {
Dao dao = new Dao();
dao.open(); //begin transaction
//create some variables using the list a, that are used to fetch the db entry:
String time, String date; //some more
Entity entity = dao.find(time, date);
//update anything in that entity;
entity.setProperty(b.get(0));
dao.close(); //commit transaction
}
}
您是否也将此方法应用于静态方法?或者宁可创建一个new DaoService().updateToDB(a, b);
anc从需要它的地方调用此方法?
所以你在Dao的构造函数中分配Hibernate会话?或者他们在一个ThreadLocal的某个地方抓住它? – Affe
我在实例化中获取dao本身的EntityManager':EntityManager em = EMUtil.get();' – membersound
和EMUtil从它获取???我要去的地方是,虽然这很好,但您无法随着需求的增长和项目的发展而改变会话生命周期或扩展工作单元的范围。你被耦合到被定义为独立静态方法的所有工作单元中,这会变得很难看。 – Affe