小编use*_*543的帖子

通过XML注入Entitymanager而不是注释

我想要做的是通过XML注入几乎与通过A @PersistenceContext注释完成的方式相同.我需要这个,因为我需要将不同的实体管理器注入到同一个DAO中.数据库彼此镜像,我宁愿有1个基类,对于那个基类的实例,然后创建多个类,这样我就可以使用@PersistenceContext注释.

这是我的例子.这就是我现在正在做的事情并且它有效.

public class ItemDaoImpl {
 protected EntityManager entityManager;

 public List<Item> getItems() {
     Query query = entityManager.createQuery("select i from Item i");
  List<Item> s = (List<Item>)query.getResultList();
  return s; 
 }
 public void setEntityManger(EntityManager entityManager) {
  this.entityManager = entityManager;
 }
}

@Repository(value = "itemDaoStore2")
public class ItemDaoImplStore2 extends ItemDaoImpl {

 @PersistenceContext(unitName = "persistence_unit_2")
 public void setEntityManger(EntityManager entityManager) {
  this.entityManager = entityManager;
 }
}

@Repository(value = "itemDaoStore1")
public class ItemDaoImplStore1 extends ItemDaoImpl {

 @PersistenceContext(unitName = "persistence_unit_1")
 public void setEntityManger(EntityManager entityManager) {
  this.entityManager = …
Run Code Online (Sandbox Code Playgroud)

xml spring annotations entitymanager

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

用于替换typelist的C++可变参数模板

我想利用可变参数模板来替换下面的标准类型列表代码.另外,请注意,这使用int作为类型.我试图加入C++ 11定义的强类型枚举,所以我想用模板参数类型替换int HEAD.

template <int HEAD, class TAIL>
struct IntList {
  enum { head = HEAD };
  typedef TAIL tail;
};

struct IntListEnd {};

#define LIST1(a) IntList<a,IntListEnd>
#define LIST2(a,b) IntList<a,LIST1(b) >
#define LIST3(a,b,c) IntList<a,LIST2(b,c) >
#define LIST4(a,b,c,d) IntList<a,LIST3(b,c,d) >
Run Code Online (Sandbox Code Playgroud)

这就是我试图走下去的道路:

template <class T, T... Args> 
struct vlist;

template <class T, T value, T... Args>
struct vlist {
  T head = value;
  bool hasNext() { 
    if (...sizeof(Args) >=0 ) 
      return true; 
  }
  vlist<T,Args> vlist;
  vlist getNext () { 
    return vlist;
  } …
Run Code Online (Sandbox Code Playgroud)

c++ enums typelist variadic-templates c++11

3
推荐指数
1
解决办法
5039
查看次数