我正在阅读EJB 3 in Action,我遇到了这句话
简单来说,Enterprise JavaBeans(EJB)是一个使用Java编程语言构建可移植,可重用和可伸缩的业务应用程序的平台.
然后在接下来的两段中,他们将EJB作为一个组件,将EJB作为一个框架.
此外,他们还说当他们在书中讨论EJB时,他们指的是用于构建应用程序部分的服务器端组件.
我对EJB是什么感到困惑,EJB是一个平台/框架是否正确,组件和容器都包含在该定义中?说EJB组件而不仅仅是EJB更正确吗?
我正在尝试使用Tomcat运行Web应用程序,但应用程序正在使用以下库:
import javax.validation.constraints.Future;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
Run Code Online (Sandbox Code Playgroud)
这些库不是Tomcat规范的一部分,因此我需要手动添加它们.
我应该添加哪些库?
我正在使用EJB 3和JBoss AS 6.0.0.Final。我有一个带注释@Stateless和的无状态会话bean @WebService。添加批注时@Singleton,部署错误,显示以下消息:
... name = ServiceBean,service = ejb3已安装
如何避免部署错误?
我使用 Glassfish 2 和容器管理的持久性和 Hibernate 3.2 作为持久性提供者。我的业务逻辑中有一些 finder 方法,它操作一些持久性实体,这些实体是通过EntityManager. 操作只是改变一个String属性(从集合中删除一个元素会导致相同的效果)。
我不叫像什么保存或坚持我的EntityManager。我只想将一些更改的实体返回给我的客户。
似乎当容器提交事务时,对我的实体的更改会自动保存。到目前为止,我完全错过了一些神奇的 Hibernate 或 Glassfish 行为吗?
org.hibernate.LazyInitializationException:无法懒惰地初始化角色集合:pojo.Person.address,没有关闭会话或会话.
我得到这个例外,我正在使用Spring 3.0和Hibernate 3.6.
我有这个代码来获取2个日期之间的所有交易.我想得到一个desc排序列表.有什么可能性?
@Override
public List<Transaction> searchBySubmitDate(final Date startDate,
final Date endDate) {
return transactionRepository.findAll(new Specification<Transaction>() {
@Override
public Predicate toPredicate(Root<Transaction> transaction,
CriteriaQuery<?> q, CriteriaBuilder cb) {
Predicate between = cb.between(transaction.get(Transaction_.dateSubmit), startDate, endDate);
return between;
}
});
Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个捕获父子关系的表,如树.我想只保留两列来捕获这个结构"id"和"parent".我希望数据库能够在删除行时级联删除所有子项.下面是我创建的Hibernate实体,@OnDelete(action = OnDeleteAction.CASCADE)但是我添加了注释,但是ON DELETE CASCADE当Hibernate创建表时,没有添加到表中.
这是一个错误吗?或者有什么我缺少或不理解?
@Entity
public class Tree {
@Id
@Column(name = "id", nullable = false)
private Long id;
@OneToMany(fetch = FetchType.EAGER)
@JoinColumn(name = "parent", nullable = true)
private List<Tree> children;
@ManyToOne
@OnDelete(action = OnDeleteAction.CASCADE)
@JoinColumn(name = "parent", nullable = false)
private Tree parent;
public Tree(Long id) {
this.id = id;
}
public Tree() {
}
public Long getId() {
return id;
}
protected void setId(Long id) {
this.id = id;
}
public List<Tree> …Run Code Online (Sandbox Code Playgroud) hibernate cascade cascading-deletes jpa-2.0 hibernate-cascade
我已经创建了非常基本的EJB3有状态bean但无法远程访问它.我越来越:
引起:javax.naming.NamingException:远程业务接口的ejb ref resolution错误com.s9120.ejb.Calculator [根异常是java.lang.ClassNotFoundException:com.s9120.ejb.Calculator]
我有1个bean和1个接口.看起来界面没有部署(我正在使用GlassFish):这是代码:
package com.calc.ejb;
import javax.ejb.Remote;
@Remote
public interface Calculator {
public Double multiply(Double multiplier, Double multiplicand);
public Double divide(Double dividend, Double divisor);
public Double add(Double addend, Double augend);
public Double subtract(Double minuend, Double subtrahend);
public void saveToMemory(Double number);
public Double retrieveFromMemory();
}
Run Code Online (Sandbox Code Playgroud)
豆:
package com.calc.ejb;
import javax.ejb.Remote;
import javax.ejb.Stateful;
/**
* Session Bean implementation class CalculatorBean
*/
@Stateful
@Remote(Calculator.class)
public class CalculatorBean implements Calculator{
/* Implementation */
}
Run Code Online (Sandbox Code Playgroud)
访问它:
context = new InitialContext();
Calculator calculator …Run Code Online (Sandbox Code Playgroud) 我正在开发一个Java项目,我的任务是编写一些针对遗留数据库的数据库映射.
在这样做时,我开始质疑我应该如何测试我的映射是否有效.我很可能在我的映射中犯了几个错误,因为我不是一个经验丰富的JPA注释用户.
那么关于通过注释测试手动编写的JPA映射的一般意见/最佳实践是什么?
java ×4
hibernate ×3
java-ee-6 ×3
glassfish ×2
java-ee ×2
jpa ×2
jpa-2.0 ×2
annotations ×1
cascade ×1
ejb ×1
ejb-3.0 ×1
ejb-3.1 ×1
jndi ×1
jsp ×1
persistence ×1
spring-data ×1
spring-mvc ×1
testing ×1
tomcat ×1
tomcat6 ×1
unit-testing ×1