此外,EntityManager的作用域应该是请求(或会话或方法)吗?
谢谢,克里西
我将使用服务层来管理业务逻辑,使用数据访问层来管理对象关系模型。因此,实体管理器和事务应该是DAO的一部分。保持交易尽可能短是很重要的。
选择哪种类型的作用域的决定并不明显,因为它取决于bean/应用程序的性质。幻灯片15中演示文稿后面的用法示例:
@requestscoped
:dto/models,JSF backing beans@conversationscoped
:多步工作流,购物车@sessionscoped
:用户登录凭据@applicationscoped
:整个应用程序共享的数据,缓存@SessionScoped // conversation, application scoped as well
public class ServiceImpl implements Service {
@Inject
private Dao dao;
public void createSomething(SomeDto dto) {
// dto -> entity transformation
dao.create(entity);
}
public SomeDto getSomething(int id) {
SomeEntity entity = em.findById(id);
// entity -> dto transformation
return dto;
}
}
@RequestScoped
@Transactional
public class DaoImpl implements Dao {
@Inject
private EntityManager em; //creating em is cheap
// TxType.REQUIRED by default
public void create(SomeEntity entity) {
em.persist(entity);
}
@Transactional(TxType.NOT_SUPPORTED)
public SomeEntity findById(int id) {
return em.find(SomeEntity.class, id);
}
}
我的应用程序中的查询有问题。这是执行查询的查询方法: 这是错误: 在我发现的痕迹中: 原因:java。lang.IllegalArgumentException:在EntityManager中创建查询时发生异常:异常描述:语法错误解析[SELECT*FROM PRODUCT WHERE CATEGORY='Humano'。[22,22]select语句必须有FROM子句。[7,7]算术表达式中缺少
我从一个新项目开始,目前正在评估是否使用JPA或JDBC。我们的操作主要是大容量插入和大容量读取,很少是单次插入/读取。我用JPA和JDBC检查了一个原型,意识到两者都有自己的优点和局限性。考虑到当前的用例,对于一个事实,我将永远只有大容量读和大容量写,哪一个会是更好的选择? Spring JPA Repository提供了一个简单的方法save(Collection),该方法既可以收集又可以保存
我在JBoss EAP 6上使用Java EE 6,我的JSF bean注释如下:(都来自包) 但是,它们也是CDI bean(默认构造函数,使用、等)。我一直读到不能混合这些注释(JSF和CDI),但它显然工作得很好:注入工作正常,视图更改时调用preDestroy等)。 我是不是漏掉了什么?问题出在哪里?为什么不用呢?
我刚学会飞镖和扑腾。 谢了!
我正在尝试关闭本地mysql数据库的ssl。但我无法在spring应用程序中找到实际属性。属性文件,该文件将执行此操作。 我当前的文件是: 我试过Spring。数据源。useSSl=false,这不起作用。我也尝试过spring。数据源。url=jdbc:mysql://localhost:3306/test
我整天都在尝试运行JSF应用程序的JMeter测试。我知道,但这似乎是一个非常简单的问题。我准备了正则表达式提取器: 以下采样器是用代理和记录创建的。 第一个请求。这是将从中提取ViewState的请求。 请求其中<代码>${jsfviewstee}被传递到 第二个请求在本例中非常重要。 结果是: 首先。在右边我们可以看到ViewState的值。 ,它显示jsfViewState值是正确的。我们可