小编Mil*_*ler的帖子

程序设计 - 按功能与层或两者打包?

我正处于Web应用程序的设计阶段,该应用程序允许用户创建工作请求,工作人员可以根据这些请求投入时间.该应用程序还将为主管提供报告功能,以获取每日总计,报告和帐户所花费的时间,"成本分配".

我过去使用的应用程序是使用逐层方法设计的.我认为通过功能设计使用包会更有效率,我对这个设计有疑问.

我目前正在考虑的功能包:

  1. 请求 - CRUD请求,然后分配,添加发票号等...
  2. 工作时间 - 用户针对请求,假期,培训或会议的每日时间
  3. 成本分配 - 创建报告,会计师想要的会计事项......

前端将是Tomcat服务器和JSP.而且,后端将是一个Oracle数据库,EclipseLink执行持久性.

我的问题:

根据我对逐个包的理解,实体和DAO将进入与它们相关联的包.在多个包中展开持久层.将包从其他包中调用实体.所有的重叠是否真的有用?包之间没有隔离.使用打包功能有什么优缺点?使用额外的持久层是否是一个好的设计?或者,我是否完全理解这一点?

java packaging domain-driven-design web-applications

10
推荐指数
2
解决办法
5274
查看次数

Jpa QueryBuilder where子句中的多个表达式不起作用

我在使用javax.persistence.criteria.CriteriaBuilder创建查询时遇到问题.我正在使用EclipseLink 2.1和Oracle 10g数据库.在构建具有多个限制的查询时,它将仅使用第一个限制,而不是两个限制.

这是我的代码:

CriteriaBuilder cb = getEm().getCriteriaBuilder();
CriteriaQuery<Assignment> query = cb.createQuery(Assignment.class);
Root<Assignment> assignment = query.from(Assignment.class);

query.where(
    cb.equal(assignment.get("request"), request),
    cb.isNull(assignment.get("endDate")));

return getEm().createQuery(query).getResultList();
Run Code Online (Sandbox Code Playgroud)

生成的查询是:

SELECT ASSX_ID, END_DATE, BEGIN_DATE, COMMENTS, 
       ASSX_OER_ASSIGNED_TO_ID, OER_OER_ID_ASSIGNED_BY, 
       ASSX_RQST_ID 
FROM TARTS.ASSIGNMENT_XREF 
WHERE (ASSX_RQST_ID = ?)
Run Code Online (Sandbox Code Playgroud)

除了where子句外,它看起来不错.我期待:

SELECT ASSX_ID, END_DATE, BEGIN_DATE, COMMENTS, 
       ASSX_OER_ASSIGNED_TO_ID, OER_OER_ID_ASSIGNED_BY, 
       ASSX_RQST_ID FROM TARTS.ASSIGNMENT_XREF 
WHERE (ASSX_RQST_ID = ? AND BEGIN_DATE IS NOT NULL)
Run Code Online (Sandbox Code Playgroud)

如果我使用cb.and(arg1,arg2)也没关系也没关系.难道我做错了什么?任何帮助将不胜感激.

criteria eclipselink query-builder jpa-2.0

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

使用JNDI数据源可以从中获取连接字符串吗?

我的应用程序在Tomcat上有一个JNDI数据源.我需要从中访问连接字符串.有没有办法在我的应用程序中执行此操作?

java jndi jdbc tomcat6

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

如何从HSQL获取用户帐户列表?

我正在使用HSQLDB 2.2.8,需要弄清楚如何获取所有用户帐户的列表.在Oracle中我会查询DBA_USERS但在HSQLDB中我不确定?有任何想法吗?

hsqldb

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