在使用Hibernate的Spring
MVC应用程序中,无法将在ManyToMany关系中连接两个实体的列表正确填充。实体是Encounter
和Provider
。该Encounter
实体有一个属性providers
,它是名单Property
的实体,而这是不正确填充。有人可以帮我弄清楚如何修正我的代码,以便实体开始正确填充吗?
未能正确填充ArrayList的控制器方法的代码如下:
@RequestMapping("/calendar")
public String showCalendar(@RequestParam("day") String day, org.springframework.web.context.request.WebRequest webRequest, Model model) {
String pid = webRequest.getParameter("pid");
System.out.println("............ pid is: " + pid);
model.addAttribute("pid", pid);
LocalDate mydate;
if(day.equals("")) {
mydate = new LocalDate();
} else {
mydate = new LocalDate(day);
}
System.out.println("------------------------ in controller, day of month is: " + mydate.getDayOfMonth());
AppointmentCalendar calendar = new AppointmentCalendar(mydate); // Or whatever you do to create it
List<Encounter> encountersforday = (List<Encounter>) clinicService.getEncountersForDay(mydate);
model.addAttribute("calendar", calendar);
model.addAttribute("encountersforday", encountersforday);
System.out.println("number of encountersforday is: " + encountersforday.size());
List<LocalTime> myblocks = calendar.getBlocks();
int[][] filledblocks = new int[myblocks.size()][3];
for (Integer i=0; i < encountersforday.size(); i++) {
System.out.println("i, encounterid, patientid, first, last, " +
"numProviders, dateTime are: " + i + ", " +
encountersforday.get(i).getId() + ", " +
encountersforday.get(i).getPatient().getId() + ", " +
encountersforday.get(i).getPatient().getFirstName() + ", " +
encountersforday.get(i).getPatient().getLastName() + ", " +
encountersforday.get(i).getProviders().size() + ", " +
encountersforday.get(i).getDateTime());
for (Integer g=0; g < myblocks.size(); g++) {
filledblocks[g][0] = g;//blockid
if (myblocks.get(g).getHourOfDay() == encountersforday.get(i).getDateTime().getHourOfDay()) {
if (myblocks.get(g).getMinuteOfHour() == encountersforday.get(i).getDateTime().getMinuteOfHour()) {
int hours = myblocks.get(g).getHourOfDay();
int mins = myblocks.get(g).getMinuteOfHour();
System.out.println("found match at: "+hours+":"+mins);
filledblocks[g][1] = i+1;//encounterid
filledblocks[g][2] = 1;//segmentindex
}
}
}
}
return "appointments/calendar";
}
System.out.println()
前面代码中的命令输出以下内容:
number of encountersforday is: 5
i, encounterid, patientid, first, last, numProviders, dateTime are: 0, 1, 5, Peter, McTavish, 0, 2014-01-10T12:00:00.000-08:00
found match at: 12:0
i, encounterid, patientid, first, last, numProviders, dateTime are: 1, 2, 4, Harold, Davis, 0, 2014-01-10T11:30:00.000-08:00
found match at: 11:30
i, encounterid, patientid, first, last, numProviders, dateTime are: 2, 3, 3, Eduardo, Rodriquez, 0, 2014-01-10T10:00:00.000-08:00
found match at: 10:0
i, encounterid, patientid, first, last, numProviders, dateTime are: 3, 4, 2, Morticia, Adams, 0, 2014-01-10T09:30:00.000-08:00
found match at: 9:30
i, encounterid, patientid, first, last, numProviders, dateTime are: 4, 5, 1, Speed, Racer, 1, 2014-01-10T13:30:00.000-08:00
found match at: 13:30
从上面的输出可以看到,只有一个Encounter
对象大于0
numProviders
。尽管事实是每一个Encounters
都Provider
在基础数据表中指定了一个事实,但这是正确的。
注意:为简化此发布,我已将相关代码上传到文件共享站点。 您可以通过单击下面的链接在文件共享站点上查看代码。
你可以阅读的代码,用于创建和填充数据表encounters
和providers
基础数据库,在这个环节。
Encounter
实体的代码位于此链接上。
Provider
实体的代码位于此链接上。
对于该代码BaseEntity
是在这个环节。
Person
实体的代码位于此链接上。
providerEncounterJunction
表中的每个插入都使用相同的主键。我猜他们只是在相互覆盖,而您在该表中实际上只有一行。
我试图在Neo4j中插入两个节点之间的关系。我正在使用Neo4J(2.1.8社区) 我正在使用尝试创建员工经理关系。此关系实体是报表。(两个类都在下面给出) 但当我试图挽救这段感情的时候 我得到了例外作为 线程“main”组织中出现异常。springframework。刀。DataRetrievalFailureException:关系[0]没有propertyKey=“type”的属性。;嵌套的
问题内容: 我正在使用Play编写一个部署在Tomcat中的webapp。因为该应用程序不会处理大量数据,所以我在Hibernate中使用默认的H2数据库。当我想部署新版本的应用程序时,我关闭了tomcat,擦除了旧的webapp和WAR,添加了新的WAR,然后开始备份。 直到几天前,当我添加数据库组件时,它一直有效。现在,我经常无法重新部署该应用程序。当我删除旧目录时,它将使用以下结构自动重新生
我一直试图将一个实体添加到数据库中,该实体与另一个实体有OneTo许多关系,但当我插入该实体时,它说无法插入id,因为它是null。 我已经映射了这样的父子类: 子实体: 我的json长这样: 这是hibernate抛出的错误: 错误Msg=ORA-01400:无法将NULL插入(“DQISAPPS”。“目录\备注”。“目录\ ID”) 在甲骨文。jdbc。驾驶员t4cttiore11。proce
在控制台上获取以下第一行: 35026:1978749]CoreText注意:客户端请求的名称“.SFNS-Regular”,它将获得Times-Roman而不是预期的字体。所有系统UI字体访问都应通过适当的API,如CTFontCreateUIFontForLanguage()或[NSFont systemFontOfSize:]。2021 06月09日00:00:46.808 java[350
我正在用Java、Spring和JPA开发一个web应用程序。我有这两个实体,它们代表一个用户及其后续通知。当一个用户跟踪另一个用户时,被跟踪的用户将收到一个follow通知。 我想删除User并删除它的所有通知,但我想保留通知的引用用户,也就是开始跟踪主用户的用户。唯一的问题是,当我尝试删除用户时,会出现以下错误: com.mysql.jdbc.exceptions.jdbc4.mysqlint
本章将向您介绍实体之间的关系。 通常,关系在数据库中的表之间更有效。 这里实体类被视为关系表(JPA的概念),因此实体类之间的关系如下: @ManyToOne关系 @OneToMany关系 @OneToOne关系 @ManyToMany关系 @ManyToOne关系 实体之间的多对一关系:其中一个实体(列或列集)被包含唯一值的另一个实体(列或列集)引用。 在关系数据库中,通过在表之间使用外键/主键