我开发了一个简单的代码,通过在实体类“employee”和“Department”上使用JPA的CRUD操作(find)来显示员工姓名。在运行代码时,它工作正常,但真正的问题来了,当我从应用程序创建一个jar文件时,jar文件出现了一个异常,我将该异常写在一个txt文件中
下面是Employee类
package com.tutorialspoint.eclipselink.entity;
import java.util.*;
import javax.persistence.*;
@Entity
public class Employee {
@Id
@GeneratedValue(strategy= GenerationType.AUTO)
private int eid;
@Temporal(TemporalType.TIMESTAMP)
private java.util.Date dop;
private String ename;
private double salary;
private String deg;
@OneToOne(targetEntity = Department.class)
private Department dept;
@OneToMany (targetEntity = Staff.class)
private ArrayList<Staff> staffs;
public Employee(int eid, String ename, double salary, String deg) {
super( );
this.eid = eid;
this.ename = ename;
this.salary = salary;
this.deg = deg;
}
public Employee( ) {
super();
}
public Date getDop() {
return dop;
}
public void setDop(Date dop) {
this.dop = dop;
}
public int getEid( ) {
return eid;
}
public void setEid(int eid) {
this.eid = eid;
}
public Department getDept() {
return dept;
}
public void setDept(Department dept) {
this.dept = dept;
}
public String getEname( ) {
return ename;
}
public void setEname(String ename) {
this.ename = ename;
}
public double getSalary( ) {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
public String getDeg( ) {
return deg;
}
public void setDeg(String deg) {
this.deg = deg;
}
public ArrayList<Staff> getStaffs() {
return staffs;
}
public void setStaffs(ArrayList<Staff> staffs) {
this.staffs = staffs;
}
}
下面是显示员工姓名和学位的类
public void findEmployee(){
try{
EntityManagerFactory emfactory = Persistence.createEntityManagerFactory( "Eclipselink_JPA" );
EntityManager entitymanager = emfactory.createEntityManager();
Employee employee = entitymanager.find( Employee.class, 204 );
JOptionPane.showMessageDialog(null, employee.getEname()+
"=>"+employee.getDeg());
}catch(Exception ex){
JOptionPane.showMessageDialog(null,ex.getMessage());
displayMsg(ex.getMessage());
}
}
public void displayMsg(String msg){
// i made this method to display the exception in a txt file
File f = new File("E:\\bug2.txt");
FileWriter fw = new FileWriter(f);
PrintWriter pw = new PrintWriter(fw);
pw.println(msg);
pw.flush();pw.close();
}
下面是异常“exception[EclipseLink-28019](Eclipse Persistence Services-2.5.2.v20140319-9AD6ABD):org.Eclipse.Persistence.exceptions.EntityManagerSetupException异常描述:PersistenceUnit[Eclipselink_JPA]的部署失败。关闭此PersistenceUnit的所有工厂。内部异常:exception[EclipseLink-0](Eclipse Persistence Services
Exception[EclipseLink-1](Eclipse Persistence Services-2.5.2.v20140319-9AD6ABD):org.Eclipse.Persistence.exceptions.DescriptoreXception
异常说明:属性[teacherSet]未声明为ValueHolderInterface类型,但其映射使用间接方式。
映射:org.eclipse.persistence.mappings.manyTomanyMapping[teacherSet]描述符:RelationalDescriptor(com.tutorialspoint.eclipselink.entity.CLAS-->[databaseTable(CLAS)])
Exception[EclipseLink-1](Eclipse Persistence Services-2.5.2.v20140319-9AD6ABD):org.Eclipse.Persistence.exceptions.DescriptoreXception
异常说明:属性[staffs]未声明为ValueHolderInterface类型,但它的映射使用间接方式。映射:org.eclipse.persistence.mappings.manytomanymapping[staffs]
描述符:RelationalDescriptor(com.tutorialspoint.eclipselink.entity.employee-->[databasetable(EMPLOYEE)])
涉及像ValueHolders和间接这样的接口的异常很可能是由于实体编织造成的问题。
实体编织是一个修改已编译实体的字节码的过程,以便它们实现更多的接口,并添加新的方法,以便它们能够处理间接和延迟加载等特性。
您的IDE是Oracle JDeveloper吗?默认情况下,它是具有自动执行此操作的运行配置的IDE之一,以便您的实体能够正确工作。这可以在其他IDE中以类似的方式进行配置--通过添加-javaagent:
作为程序参数(或在某些IDE中的Java选项)。查看这篇博客文章以获得一些快速信息。
在您的部署中,可能会出现Eclipselink的动态(运行时)编织失败(或由于某种原因不完整)的情况。也许您应该在将实体打包到部署工件之前考虑静态编织。
有关此操作的更多信息:https://wiki.eclipse.org/eclipselink/userguide/jpa/advanced_jpa_development/performance/weaving/static_wiving
请快速帮助我从jnlp文件下载jar文件,在缓存中下载的文件是随机命名的,而不是按照jnlp文件名,即它有像345546ACB-1DA47A98-1_2_3_4这样的名称,而不是jarone.jar,请使用正确的URL我需要用于下载下面代码的jar或如何获得在缓存文件夹中下载的jar文件的正确名称。我可以在java控制台中看到所有正确的jar名称,但不能从那里下载
问题内容: 什么样的配置是需要使用注解来自像,等等?这是我的代码: 当我尝试在另一个类中使用它时,验证不起作用(即,创建该对象时没有错误): 为什么这不适用和的约束?我还需要做什么? 问题答案: 为了使JSR-303 bean验证在Spring中起作用,您需要做一些事情: 注释的MVC名称空间配置: JSR-303规范JAR :(看起来您已经拥有了) 规范的实现,例如休眠验证,它似乎是最常用的示例
我有一个我写的程序的输出文件。它由FileWriter和BufferedWriter编写。 我是否错误地使用了FileWriter/BufferedWriter,或者它在.jar文件中不起作用?
问题内容: 我正在用Java开发游戏,我想将随机生成的地图保存在图像上,然后加载它。我的代码在Eclipse中工作正常,但是当我将其导出到.jar / .exe文件时,它在制作文件(“ mapf”)时会遇到问题。谢谢您的回答。 堆栈跟踪: 问题答案: 您似乎认为您可以将jar视为目录结构,事实并非如此。您甚至都不应该 考虑 将代码从中运行到jar文件中(可能的话,但是会涉及 很多 陷阱)。 假设您
问题内容: 我创建了一个JPA项目,尝试使用上述类,但是找不到它们缺少的jar。请指导我。 问题答案: 尝试Geronimo规格JPA2 jar http://mirrors.ibiblio.org/pub/mirrors/maven2/org/apache/geronimo/specs/geronimo- jpa_2.0_spec/1.0-PFD2/ 仍然没有官方的JPA2.jar
问题内容: 谁能推荐Java库来操作 jar 文件?我在 java.util.jar上 找到的工具比较简洁(或者也许我没有看一些示例代码)。我对诸如此类的东西感兴趣: 将文件添加到 罐子中 从 罐子中* 删除文件 * 从文件夹创建一个 jar 文件 将 jar 文件放到文件夹中 读取 jar条目 的内容(也许在内存中,而不必缩小磁盘上的 jar ) 在内存中创建 jar条目 ,而不必从磁盘上的文件