1
该方法从数据库加载用户实体bean并将其返回,但在执行之前清除密码(将其设置为空)。问题在于,在数据库本身中,密码设置为空,即使我没有merge
或任何其他更新实体的方法。有任何想法吗?EJB实体:数据库行自动从实体更新而不保存在EJB中
public UserEntity loadFromDB (int userid) throws NotFoundException {
UserEntity user = em.find(UserEntity.class, userid);
if (user == null)
throw new NotFoundException();
user.setPassword(null);
return user;
}
感谢transcation的一部分,DAO类是从一个无状态会话bean调用,有没有更新的指令或任何地方开始交易。 – ps0604 2015-03-13 15:08:35
UserEntity user = em.find(UserEnt.class,userid);告诉我它正在事务中运行 – 2015-03-13 15:16:32
它必须在事务中运行,因为我按照您的指示使用'@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)'设置方法,并且行不再更新。使用'find'意味着你启动一个事务?我只需要加载该行。 – ps0604 2015-03-13 15:18:02