2017-03-03 63 views
0

下面的代码使用JPA和Spring,并且可以在表格“游戏”中创建一行。可以使用EntityManager(JPA)创建函数处理任何类型的对象吗?

@Repository 
@Transactional 
public class GameDao { 
    /** 
    * Save the game in the database. 
    */ 
    public void create(Game game) { 
     entityManager.persist(game); 
     return; 
    } 

    // An EntityManager will be automatically injected from entityManagerFactory 
    // setup on DatabaseConfig class. 
    @PersistenceContext 
    private EntityManager entityManager; 

} 

看着这个创建函数,我不知道它是如何找到它应该插入的表?

如果它可以从参数类型(游戏游戏)中找到表格,我可以创建一个名为CreateDao的类并从那里执行所有的创建操作?

+1

不确定我完全理解这个问题。它找到表格是因为Game添加在persistence.xml文件中,并用'@ Entity'注释,可能类似于@Table(name =“game_tbl”)'。理论上,是的,你可以创建1个通用DAO,但是你必须严重依赖Java泛型。 –

+0

回答第二个问题,您可以在此博客中找到一个很好的示例:[用于生成更简单的REST式Web服务的NetBeans](https://dzone.com/articles/nb-generate-simpler-rest)。使用它或查看'AbstractFacade '类 – perissf

+0

的实现可能出现[Single DAO&generic CRUD methods(JPA/Hibernate + Spring)]的重复(http://stackoverflow.com/questions/3888575/single-dao-generic- crud-methods-jpa-hibernate-spring) –

回答

2

看看Game类的来源 - 它应该用@Entity和可能的@Table注释 - 它定义了实际的DB表。

所以,答案是没有,它不是类的名字 - GameDao,做了布线

+0

GameDao如何进行布线?带注释? – brainmassage

相关问题