【发布时间】:2011-10-26 15:20:51
【问题描述】:
我有以下服务...
@Stateless
@LocalBean
public class RandomService {
@EJB RandomString stringTokenizer;
@PersistenceContext
EntityManager em;
public String generate(Actions action)
{
Token token = new Token();
token.setAction(action);
token.setExpiry(new Date());
token.setToken(stringTokenizer.randomize());
em.persist(token);
//em.flush();
return String.format("%010d", token.getId()) + token.getToken();
}
}
如果我不输入 em.flush(),那么 token.getId() 行将返回 null(使用 DB GENERATED SEQUENCE),尽管我知道如果我返回 Token 而不是字符串到调用服务的 id 已设置。因此,当服务返回令牌对象时,EM 似乎会刷新,但在我放入 String 时不会刷新。不过,通过冲洗,我得到了我需要的东西,对吗?
【问题讨论】:
标签: jpa jersey ejb-3.1 entitymanager