我想拥有来自相同数据条目的版本.换句话说,我想用另一个版本号复制该条目.
id - Version 将是主键.
该实体应该如何?如何与其他版本复制?
id Version ColumnA
1 0 Some data
1 1 Some Other data
2 0 Data 2. Entry
2 1 Data
Run Code Online (Sandbox Code Playgroud) 我遇到过一种情况(我觉得很奇怪,但可能很正常),我使用EntityManager.getReference(LObj.getClass(),LObj.getId())获取数据库实体,然后将返回的对象传递给坚持在另一张桌子上.
所以基本上流程是这样的:
class TFacade{
createT(FObj, AObj) {
T TObj = new T();
TObj.setF(FObj);
TObj.setA(AObj);
...
EntityManager.persist(TObj);
...
L LObj = A.getL();
FObj.setL(LObj);
FFacade.editF(FObj);
}
}
@TransactionAttributeType.REQUIRES_NEW
class FFacade{
editF(FObj){
L LObj = FObj.getL();
LObj = EntityManager.getReference(LObj.getClass(), LObj.getId());
...
EntityManager.merge(FObj);
...
FLHFacade.create(FObj, LObj);
}
}
@TransactionAttributeType.REQUIRED
class FLHFacade{
createFLH(FObj, LObj){
FLH FLHObj = new FLH();
FLHObj.setF(FObj);
FLHObj.setL(LObj);
....
EntityManager.persist(FLHObj);
...
}
}
我得到以下异常"java.lang.IllegalArgumentException:未知实体:com.my.persistence.L $$ EnhancerByCGLIB $$ 3e7987d0"
在查看了一段时间之后,我终于想通了,因为我正在使用EntityManager.getReference()方法,因为该方法正在返回代理,所以我得到了上述异常.
这让我想知道,何时建议使用EntityManager.getReference()方法而不是EntityManager.find()方法?
如果EntityManager.getReference()无法找到正在搜索的实体本身非常方便,则会抛出EntityNotFoundException.如果EntityManager.find()方法无法找到实体,则它仅返回null.
关于事务边界,听起来像你需要在将新发现的实体传递给新事务之前使用find()方法.如果你使用getReference()方法,那么你可能会遇到类似我的情况,但有上述异常.
我正在尝试编写一个自定义servlet(用于AJAX/JSON),我想在其中引用我@ManagedBeans的名字.我希望能够映射:
http://host/app/myBean/myProperty
至:
@ManagedBean(name="myBean")
public class MyBean {
public String getMyProperty();
}
Run Code Online (Sandbox Code Playgroud)
是否可以从常规servlet中按名称加载bean?是否有我可以使用的JSF servlet或帮助程序?
我似乎被春天宠坏了,这一切都太明显了.
我刚刚从Ant切换到Maven,并试图找出建立基于EAR文件的企业项目的最佳实践?
假设我想创建一个非常标准的项目,其中包含EJB的jar文件,Web层的WAR文件和封装的EAR文件,以及相应的部署描述符.
我该怎么办呢?archetypeArtifactId=maven-archetype-webapp用war文件创建项目,并从那里扩展?什么是最好的项目结构(和POM文件示例)?你在哪里粘贴与ear文件相关的部署描述符等?
谢谢你的帮助.
我被要求处理portlet和门户.
我想知道portlet和servlet之间的区别?
portlet与servlet的不同之处(可能在功能上)在哪里?
Java EE为年轻的Java开发人员提供了这个"神秘的裹尸布" - 我一直试图提升自己很长一段时间但收效甚微.
混淆起因于:
Java EE似乎既是一个库又是一个平台 - 有多种方法可以"获取"Java EE库,通常来自Oracle的Java EE SDK下载.但是,除非您的代码正在运行或者可以访问Java EE应用程序服务器(例如JBoss,GlassFish,Tomcat等),否则Java EE库将无法工作或编译.为什么?库不能在应用程序服务器环境之外运行吗?为什么我需要像JBoss那样庞大的东西才能编译简单的代码来发送电子邮件?
为什么Java EE库不是"标准"并包含在常规JVM下载和/或SDK中?
当只有两种主要标准Java(Oracle JVM/SDK | OpenJDK JVM/JDK)时,为什么会有这么多Java EE产品?
使用标准Java无法对Java EE做什么?
使用标准Java可以用Java EE做些什么呢?
开发人员何时决定"需要"Java EE?
开发人员什么时候决定他们不需要Java EE?
为什么Java EE库版本与标准Java库版本(Java EE 6与Java 7)不同步?
谢谢你帮我清理鞭子!
尽管其他所有人都发布了,但我无法在MacOSX,NetBeans 7.2上找到GlassFish的错误解决方案.
Here the error :
SEVERE: Exception while invoking class org.glassfish.persistence.jpa.JPADeployer
prepare method
SEVERE: Exception while preparing the app
SEVERE: [PersistenceUnit: supmarket] Unable to build EntityManagerFactory
...
Caused by: org.hibernate.MappingException: Repeated column in mapping for entity:
com.supmarket.entity.Sale column: customerId
(should be mapped with insert="false" update="false")
Run Code Online (Sandbox Code Playgroud)
这里的代码:
Sale.java
@Entity
public class Sale {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Column(nullable=false)
private Long idFromAgency;
private float amountSold;
private String agency;
@Temporal(javax.persistence.TemporalType.DATE)
private Date createdate;
@Column(nullable=false)
private Long productId;
@Column(nullable=false)
private …Run Code Online (Sandbox Code Playgroud) 我正在使用Java,我想在我的应用程序中保持servlet不断运行,但我不知道怎么做.我的servlet有一个方法,它每天从数据库中提供用户的计数以及整个数据库中用户的总数.所以我想保持servlet不断运行.
multithreading servlets background-process java-ee scheduledexecutorservice
请告诉我Web服务器,Web容器和应用程序服务器之间的区别.
我想从包含2个静态方法m1和m2的类中模拟静态方法m1.我希望方法m1返回一个对象.
我尝试了以下内容
1)
PowerMockito.mockStatic(Static.class, new Answer<Long>() {
@Override
public Long answer(InvocationOnMock invocation) throws Throwable {
return 1000l;
}
});
Run Code Online (Sandbox Code Playgroud)
这是调用m1和m2,它们具有不同的返回类型,因此它给出了返回类型不匹配错误.
2)PowerMockito.when(Static.m1(param1, param2)).thenReturn(1000l);
但是当执行m1时不会调用它.
3)PowerMockito.mockPartial(Static.class, "m1");
给出了mockPartial不可用的编译错误,这是我从http://code.google.com/p/powermock/wiki/MockitoUsage获得的.