Spring RooとGvnixツールを使用して獣医クリニックを管理するための Web アプリケーションを作成しました。テーブルveterinary、owners、pets、dates
を
使用してデータベースを作成しました。これらのテーブルはすべて1対多に関連付けられていますが、多対多に関連付けられているテーブルTreatmentsとMedicinesを除いて、上記の 2 つのテーブルには、それらの間で対話し、データベース マネージャーMySQL ワークベンチとMYSQL Server を使用すると、Web アプリケーション フォーム I からすべてが完璧に機能します。 所有者、ペット、獣医、デート、薬を作成、更新、および削除しますが、タグjspxを介してテーブルに関連する薬を複数選択して、テーブル治療に2つ以上のレコードを作成しようとすると.
<field:select field="Med" id="c_com_clinicaveterinaria_dam_domain_Tratamiento_Med" itemValue="id" items="${medicamentoses}" multiple="true" path="/medicamentoses" z="+hr+pOBWxfr2whYp+joa+OMxAHk="/>
アプリケーションは詳細なしでエラーを表示しますが、私は完全に落ちます
Windows のタスク マネージャーからJava (TM) プラットフォーム SE のバイナリ名(java.exe) のプロセスが+1,800 KB (プライベート ワークスペース)を超えて急上昇し、Web アプリケーションが落ちることがわかります。
名前を持つ Gvnix の永続化のためのAspectJ クラスのコードのこの部分の問題。
特権アスペクト TratamientoBatchService_Roo_GvNIXJpaBatch {
エラーはここにあると思います。
@Transactional
public void TratamientoBatchService.create(List<Tratamiento> tratamientoes) {
for( Tratamiento tratamiento : tratamientoes) {
tratamiento.persist();
}
}
これは IntelliJ IDE コンソールを表示するエラーです:
Stacktrace:] with root cause java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Arrays.java:3332)
at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:137)
at java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:121)
at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:421)
at java.lang.StringBuffer.append(StringBuffer.java:272)
at org.apache.commons.lang3.builder.ToStringStyle.appendFieldSeparator(ToStringStyle.java:1503)
at org.apache.commons.lang3.builder.ToStringStyle.appendFieldEnd(ToStringStyle.java:1526)
at org.apache.commons.lang3.builder.ToStringStyle.append(ToStringStyle.java:439)
at org.apache.commons.lang3.builder.ToStringBuilder.append(ToStringBuilder.java:848)
at org.apache.commons.lang3.builder.ReflectionToStringBuilder.appendFieldsIn(ReflectionToStringBuilder.java:522)
at org.apache.commons.lang3.builder.ReflectionToStringBuilder.toString(ReflectionToStringBuilder.java:683)
at org.apache.commons.lang3.builder.ReflectionToStringBuilder.toString(ReflectionToStringBuilder.java:282)
at org.apache.commons.lang3.builder.ReflectionToStringBuilder.toString(ReflectionToStringBuilder.java:145)
at com.clinicaveterinaria.dam.domain.Citas_Roo_ToString.ajc$interMethod$com_clinicaveterinaria_dam_domain_Citas_Roo_ToString$com_clinicaveterinaria_dam_domain_Citas$toString(Citas_Roo_ToString.aj:13)
at com.clinicaveterinaria.dam.domain.Citas.toString(Citas.java:1)
at java.lang.String.valueOf(String.java:2994)
at java.lang.StringBuffer.append(StringBuffer.java:265)
at org.apache.commons.lang3.builder.ToStringStyle.appendDetail(ToStringStyle.java:586)
at org.apache.commons.lang3.builder.ToStringStyle.appendInternal(ToStringStyle.java:550)
at org.apache.commons.lang3.builder.ToStringStyle.append(ToStringStyle.java:436)
at org.apache.commons.lang3.builder.ToStringBuilder.append(ToStringBuilder.java:848)
at org.apache.commons.lang3.builder.ReflectionToStringBuilder.appendFieldsIn(ReflectionToStringBuilder.java:522)
at org.apache.commons.lang3.builder.ReflectionToStringBuilder.toString(ReflectionToStringBuilder.java:683)
at org.apache.commons.lang3.builder.ReflectionToStringBuilder.toString(ReflectionToStringBuilder.java:282)
at org.apache.commons.lang3.builder.ReflectionToStringBuilder.toString(ReflectionToStringBuilder.java:145)
at com.clinicaveterinaria.dam.domain.Tratamiento_Roo_ToString.ajc$interMethod$com_clinicaveterinaria_dam_domain_Tratamiento_Roo_ToString$com_clinicaveterinaria_dam_domain_Tratamiento$toString(Tratamiento_Roo_ToString.aj:13)
at com.clinicaveterinaria.dam.domain.Tratamiento.toString(Tratamiento.java:1)
at java.lang.String.valueOf(String.java:2994)
at java.lang.StringBuilder.append(StringBuilder.java:131)
at java.util.AbstractCollection.toString(AbstractCollection.java:462)
at org.hibernate.collection.internal.PersistentSet.toString(PersistentSet.java:317)
at java.lang.String.valueOf(String.java:2994)
「- Xmx512m - XX:MaxPermSize = 128 m」まで耐えることができるメモリの量を増やすために、IDE IntelliJ IDEA から Maven サーバーを構成しようとしましたが、問題は解決できません。
これは私のクラス Java です: Tratamiento.java
package com.clinicaveterinaria.dam.domain;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.roo.addon.javabean.RooJavaBean;
import org.springframework.roo.addon.jpa.activerecord.RooJpaActiveRecord;
import org.springframework.roo.addon.tostring.RooToString;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
@RooJavaBean
@RooToString
@RooJpaActiveRecord
public class Tratamiento {
/**
*/
@NotNull
@Size(min = 5, max = 100)
private String Codigo;
/**
*/
@Size(min = 3, max = 250)
private String AnalisisClinicos;
/**
*/
@Size(min = 3, max = 250)
private String Medicamentos;
/**
*/
private double Coste;
/**
*/
@Size(min = 3, max = 250)
private String Diagnostico;
/**
*/
@Size(min = 3, max = 250)
private String MotivoIngreso;
/**
*/
@NotNull
@Temporal(TemporalType.TIMESTAMP)
@DateTimeFormat(style = "M-")
private Date FechaComienzoTratamiento;
/**
*/
@Temporal(TemporalType.TIMESTAMP)
@DateTimeFormat(style = "M-")
private Date FechaFinTratamiento;
/**
*/
@ManyToOne
private Citas citas;
/**
*/
@ManyToMany(cascade = CascadeType.ALL)
private Set<Medicamentos> Med = new HashSet<Medicamentos>();
public static List<Tratamiento> findTratamientoXDueño(int idUsr) {
if (idUsr <= 0 /*mas comprobaciones*/) return null;
Query query = entityManager().createNativeQuery(
" SELECT t.* FROM tratamiento t " +
" INNER JOIN citas c ON c.id = t.citas " +
" INNER JOIN mascota m ON m.id = c.mascotas " +
" WHERE m.duenio = (:idUsr)"
, Tratamiento.class).setParameter("idUsr", idUsr);
return query.getResultList();
}
public static List<Tratamiento> findTratamientoXVeterinario(int idUsr) {
if (idUsr <= 0 /*mas comprobaciones*/) return null;
Query query = entityManager().createNativeQuery(
" SELECT t.* FROM tratamiento t " +
" INNER JOIN citas c ON c.id = t.citas " +
" WHERE c.veterinarios = (:idUsr)"
, Tratamiento.class).setParameter("idUsr", idUsr);
return query.getResultList();
}
}
助けてくれてありがとう、私は最終コースプロジェクトをやっています。
MVC (Model–view–controller)を使用しています。
申し訳ありませんが、私の英語はとても下手です。