- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我对此很陌生,目前正在使用 hibernate 框架开展一个大学项目。我目前正在努力实现的是能够获得 List<>
Graveowners 并转换为 json 字符串,然后发送到前端进行处理。我不确定我一直做错了什么,而且在涉及 json 等技术时我并不是最好的。这就是我的 class Graveowners
中的内容。 :
Entity
@Table(name="graveowner"
,catalog="dspc_explorer"
)
public class Graveowner implements java.io.Serializable {
private int graveId;
private Section section;
private String graveRefCode;
private String graveOwnerName;
private String graveOwnerAddress;
private Date graveopenDate;
private int graveRow;
private int graveDepth;
private String graveLocation;
private byte[] graveImage;
private Set<Registrar> registrars = new HashSet<Registrar>(0);
public Graveowner() {
}
public Graveowner(int graveId, Section section, int graveRow, int graveDepth) {
this.graveId = graveId;
this.section = section;
this.graveRow = graveRow;
this.graveDepth = graveDepth;
}
public Graveowner(int graveId, Section section, String graveRefCode, String graveOwnerName, String graveOwnerAddress, Date graveopenDate, int graveRow, int graveDepth, String graveLocation, byte[] graveImage, Set<Registrar> registrars) {
this.graveId = graveId;
this.section = section;
this.graveRefCode = graveRefCode;
this.graveOwnerName = graveOwnerName;
this.graveOwnerAddress = graveOwnerAddress;
this.graveopenDate = graveopenDate;
this.graveRow = graveRow;
this.graveDepth = graveDepth;
this.graveLocation = graveLocation;
this.graveImage = graveImage;
this.registrars = registrars;
}
@Id
@Column(name="grave_id", unique=true, nullable=false)
public int getGraveId() {
return this.graveId;
}
public void setGraveId(int graveId) {
this.graveId = graveId;
}
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="sectionId", nullable=false)
public Section getSection() {
return this.section;
}
public void setSection(Section section) {
this.section = section;
}
@Column(name="grave_ref_code", length=50)
public String getGraveRefCode() {
return this.graveRefCode;
}
public void setGraveRefCode(String graveRefCode) {
this.graveRefCode = graveRefCode;
}
@Column(name="grave_owner_name", length=100)
public String getGraveOwnerName() {
return this.graveOwnerName;
}
public void setGraveOwnerName(String graveOwnerName) {
this.graveOwnerName = graveOwnerName;
}
@Column(name="grave_owner_address", length=150)
public String getGraveOwnerAddress() {
return this.graveOwnerAddress;
}
public void setGraveOwnerAddress(String graveOwnerAddress) {
this.graveOwnerAddress = graveOwnerAddress;
}
@Temporal(TemporalType.DATE)
@Column(name="graveopen_date", length=10)
public Date getGraveopenDate() {
return this.graveopenDate;
}
public void setGraveopenDate(Date graveopenDate) {
this.graveopenDate = graveopenDate;
}
@Column(name="grave_row", nullable=false)
public int getGraveRow() {
return this.graveRow;
}
public void setGraveRow(int graveRow) {
this.graveRow = graveRow;
}
@Column(name="grave_depth", nullable=false)
public int getGraveDepth() {
return this.graveDepth;
}
public void setGraveDepth(int graveDepth) {
this.graveDepth = graveDepth;
}
@Column(name="grave_location", length=100)
public String getGraveLocation() {
return this.graveLocation;
}
public void setGraveLocation(String graveLocation) {
this.graveLocation = graveLocation;
}
@Column(name="grave_image")
public byte[] getGraveImage() {
return this.graveImage;
}
public void setGraveImage(byte[] graveImage) {
this.graveImage = graveImage;
}
@OneToMany(fetch=FetchType.LAZY, mappedBy="graveowner.graveId")
public Set<Registrar> getRegistrars() {
return this.registrars;
}
public void setRegistrars(Set<Registrar> registrars) {
this.registrars = registrars;
}
}
然后在我的 Dao 类中,我目前有这个方法来检索 List<Graveowners>
:
@Override
public List<Graveowner> getAllgraveOwners() {
try {
session = HibernateUtil.getSessionFactory().openSession();
tx = session.beginTransaction();
Criteria criteria = session.createCriteria(Graveowner.class);
criteria.setFetchMode("section", FetchMode.JOIN)
.setFetchMode("registrars", FetchMode.JOIN);
List<Graveowner> graveOwnersList = criteria.list();
tx.commit();
return graveOwnersList;
} catch (HibernateException e) {
try {
tx.rollback();
} catch (RuntimeException r) {
System.out.println("Can't rollback transaction");
}
throw e;
} finally {
if (session != null) {
session.close();
}
}
}
然后我有一个处理 HTTPrequests, HTTPresponse
的命令类:
public void execute(HttpServletRequest request, HttpServletResponse response) {
HttpSession session = request.getSession(true);
Users user = (Users) request.getSession().getAttribute("user");
RequestDispatcher dispatcher;
try {
if (user != null) {
if (user.getUserType() == 0) {
UserServices userservice = new UserServices();
List<Graveowner> list = (ArrayList<Graveowner>) userservice.getAllGraveowner();
GeneralServices generalService = new GeneralServices();
generalService.printArrayList((ArrayList) list);
String jsonStringUserList = new Gson().toJson(list, Graveowner.class);
System.out.println(jsonStringUserList);
if (list != null) {
session.setAttribute("list", list);
session.setAttribute("jsonStringUserList", jsonStringUserList);
session.setAttribute("status", 0);
session.setAttribute("statusMessage", "List Users success");
dispatcher = getServletContext().getRequestDispatcher("ManageGraveOwner.jsp");
} else {
System.out.println("Empty List");
session.setAttribute("status", 1);
session.setAttribute("statusMessage", "List Users service failed or No users in database");
dispatcher = getServletContext().getRequestDispatcher("ProcessResult.jsp");
}
} else {
session.setAttribute("status", 2);
session.setAttribute("statusMessage", "No valid user logged in (Need Admin rights for this action)");
dispatcher = getServletContext().getRequestDispatcher("ProcessResult.jsp");
}
} else {
session.setAttribute("status", 3);
session.setAttribute("statusMessage", "Session expired.. ");
dispatcher = getServletContext().getRequestDispatcher("/SessionExpired.jsp");
}
dispatcher.forward(request, response);
} catch (ServletException | IOException ex) {
Logger.getLogger(LoginUserCommand.class.getName()).log(Level.SEVERE, null, ex);
}
}
当我实际运行项目时,我当前收到以下错误..
Info: manageGraveowner
Info: Hibernate: select this_.grave_id as grave_id1_0_2_, this_.sectionId as sectionI2_0_2_, this_.grave_ref_code as grave_re3_0_2_, this_.grave_owner_name as grave_ow4_0_2_, this_.grave_owner_address as grave_ow5_0_2_, this_.graveopen_date as graveope6_0_2_, this_.grave_row as grave_ro7_0_2_, this_.grave_depth as grave_de8_0_2_, this_.grave_location as grave_lo9_0_2_, this_.grave_image as grave_i10_0_2_, section2_.sectionId as sectionI1_2_0_, section2_.sectionCode as sectionC2_2_0_, section2_.dateOpened as dateOpen3_2_0_, section2_.graveCount as graveCou4_2_0_, registrars3_.graveId as graveId2_0_4_, registrars3_.reg_id as reg_id1_1_4_, registrars3_.reg_id as reg_id1_1_1_, registrars3_.graveId as graveId2_1_1_, registrars3_.reg_first_name as reg_firs3_1_1_, registrars3_.reg_middle_name as reg_midd4_1_1_, registrars3_.reg_last_name as reg_last5_1_1_, registrars3_.reg_sex as reg_sex6_1_1_, registrars3_.reg_age as reg_age7_1_1_, registrars3_.reg_religion as reg_reli8_1_1_, registrars3_.reg_occupation as reg_occu9_1_1_, registrars3_.reg_death_location as reg_dea10_1_1_, registrars3_.reg_marriage_status as reg_mar11_1_1_, registrars3_.regdeath_date as regdeat12_1_1_, registrars3_.regburial_date as regburi13_1_1_ from dspc_explorer.graveowner this_ inner join dspc_explorer.section section2_ on this_.sectionId=section2_.sectionId left outer join dspc_explorer.registrar registrars3_ on this_.grave_id=registrars3_.graveId
Info: com.dspc_explorer.Dtos.Graveowner@1c225fa9
Info: com.dspc_explorer.Dtos.Graveowner@6e802ad6
Info: com.dspc_explorer.Dtos.Graveowner@6e802ad6
Info: com.dspc_explorer.Dtos.Graveowner@4ee74a73
Warning: StandardWrapperValve[WebActionServlet]: Servlet.service() for servlet WebActionServlet threw exception
java.lang.IllegalArgumentException: Can not set int field com.dspc_explorer.Dtos.Graveowner.graveId to java.util.ArrayList
at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:167)
at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:171)
at sun.reflect.UnsafeFieldAccessorImpl.ensureObj(UnsafeFieldAccessorImpl.java:58)
at sun.reflect.UnsafeIntegerFieldAccessorImpl.getInt(UnsafeIntegerFieldAccessorImpl.java:56)
at sun.reflect.UnsafeIntegerFieldAccessorImpl.get(UnsafeIntegerFieldAccessorImpl.java:36)
at java.lang.reflect.Field.get(Field.java:393)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.write(ReflectiveTypeAdapterFactory.java:86)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.write(ReflectiveTypeAdapterFactory.java:195)
at com.google.gson.Gson.toJson(Gson.java:586)
at com.google.gson.Gson.toJson(Gson.java:565)
at com.google.gson.Gson.toJson(Gson.java:520)
at com.dspc_explorer.Commands.ManageGraveOwnerCommand.execute(ManageGraveOwnerCommand.java:46)
at com.dspc_explorer.servlet.WebActionServlet.processRequest(WebActionServlet.java:39)
at com.dspc_explorer.servlet.WebActionServlet.doPost(WebActionServlet.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:344)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
at org.apache.logging.log4j.web.Log4jServletFilter.doFilter(Log4jServletFilter.java:71)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:316)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:416)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:283)
at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:459)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:167)
at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:206)
at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:180)
at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:235)
at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:283)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:200)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:132)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:111)
at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:536)
at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:56)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:591)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:571)
at java.lang.Thread.run(Thread.java:748)
我现在真的很困惑,花了很长时间试图弄清楚,所以决定注册并寻求帮助:(。我将不胜感激任何帮助,非常感激。提前致谢
最佳答案
问题出在
的第二个参数中Gson.toJson()
实际上你不需要第二个参数。
关于java - Hibernate @ManytoOne 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48875144/
我正在编写一个具有以下签名的 Java 方法。 void Logger(Method method, Object[] args); 如果一个方法(例如 ABC() )调用此方法 Logger,它应该
我是 Java 新手。 我的问题是我的 Java 程序找不到我试图用作的图像文件一个 JButton。 (目前这段代码什么也没做,因为我只是得到了想要的外观第一的)。这是我的主课 代码: packag
好的,今天我在接受采访,我已经编写 Java 代码多年了。采访中说“Java 垃圾收集是一个棘手的问题,我有几个 friend 一直在努力弄清楚。你在这方面做得怎么样?”。她是想骗我吗?还是我的一生都
我的 friend 给了我一个谜语让我解开。它是这样的: There are 100 people. Each one of them, in his turn, does the following
如果我将使用 Java 5 代码的应用程序编译成字节码,生成的 .class 文件是否能够在 Java 1.4 下运行? 如果后者可以工作并且我正在尝试在我的 Java 1.4 应用程序中使用 Jav
有关于why Java doesn't support unsigned types的问题以及一些关于处理无符号类型的问题。我做了一些搜索,似乎 Scala 也不支持无符号数据类型。限制是Java和S
我只是想知道在一个 java 版本中生成的字节码是否可以在其他 java 版本上运行 最佳答案 通常,字节码无需修改即可在 较新 版本的 Java 上运行。它不会在旧版本上运行,除非您使用特殊参数 (
我有一个关于在命令提示符下执行 java 程序的基本问题。 在某些机器上我们需要指定 -cp 。 (类路径)同时执行java程序 (test为java文件名与.class文件存在于同一目录下) jav
我已经阅读 StackOverflow 有一段时间了,现在我才鼓起勇气提出问题。我今年 20 岁,目前在我的家乡(罗马尼亚克卢日-纳波卡)就读 IT 大学。足以介绍:D。 基本上,我有一家提供簿记应用
我有 public JSONObject parseXML(String xml) { JSONObject jsonObject = XML.toJSONObject(xml); r
我已经在 Java 中实现了带有动态类型的简单解释语言。不幸的是我遇到了以下问题。测试时如下代码: def main() { def ks = Map[[1, 2]].keySet()
一直提示输入 1 到 10 的数字 - 结果应将 st、rd、th 和 nd 添加到数字中。编写一个程序,提示用户输入 1 到 10 之间的任意整数,然后以序数形式显示该整数并附加后缀。 public
我有这个 DownloadFile.java 并按预期下载该文件: import java.io.*; import java.net.URL; public class DownloadFile {
我想在 GUI 上添加延迟。我放置了 2 个 for 循环,然后重新绘制了一个标签,但这 2 个 for 循环一个接一个地执行,并且标签被重新绘制到最后一个。 我能做什么? for(int i=0;
我正在对对象 Student 的列表项进行一些测试,但是我更喜欢在 java 类对象中创建硬编码列表,然后从那里提取数据,而不是连接到数据库并在结果集中选择记录。然而,自从我这样做以来已经很长时间了,
我知道对象创建分为三个部分: 声明 实例化 初始化 classA{} classB extends classA{} classA obj = new classB(1,1); 实例化 它必须使用
我有兴趣使用 GPRS 构建车辆跟踪系统。但是,我有一些问题要问以前做过此操作的人: GPRS 是最好的技术吗?人们意识到任何问题吗? 我计划使用 Java/Java EE - 有更好的技术吗? 如果
我可以通过递归方法反转数组,例如:数组={1,2,3,4,5} 数组结果={5,4,3,2,1}但我的结果是相同的数组,我不知道为什么,请帮助我。 public class Recursion { p
有这样的标准方式吗? 包括 Java源代码-测试代码- Ant 或 Maven联合单元持续集成(可能是巡航控制)ClearCase 版本控制工具部署到应用服务器 最后我希望有一个自动构建和集成环境。
我什至不知道这是否可能,我非常怀疑它是否可能,但如果可以,您能告诉我怎么做吗?我只是想知道如何从打印机打印一些文本。 有什么想法吗? 最佳答案 这里有更简单的事情。 import javax.swin
我是一名优秀的程序员,十分优秀!