7
votes

org.springframework.beans.NoReadAdAllyPropertyException: Propriété non valide de la propriété de haricot de classe de haricots n'est pas lisible ni a une méthode getter invalide

printemps mvc est nouveau pour moi. J'aimerais avoir une littérature complète avec l'exemple de Spring MVC (même les documents officiels ne sont pas simples à comprendre).

Donc, le problème que je suis confronté est le suivant: p>

@Entity
@Table(name="CREATION_DATE")
@NamedQueries ({
@NamedQuery(name="creationDate.findById", query="select distinct c from CreationDate c left join fetch c.institution n " +
                                                  "left join fetch c.scheduleRotationChild s where c.dateId= :i")
})
public class CreationDate implements Serializable {


    private static final long serialVersionUID = 1648102358397071136L;


    private int dateId;

        @Id
        @GeneratedValue(strategy=IDENTITY)
        @Column(name="DATE_ID")
        public int getDateId() {
            return dateId;
        }

        public void setDateId(int dateId) {
            this.dateId = dateId;
        }


    private Date particularDate;

        @Column(name="PARTICULAR_DATE")
        public Date getParticularDate() {
            return particularDate;
        }

        public void setParticularDate(Date particularDate) {
            this.particularDate = particularDate;
        }


    private int version;

        @Version
        @Column(name="VERSION")
        public int getVersion() {
            return version;
        }

        public void setVersion(int version) {
            this.version = version;
        }


    private Date childGoSchoolDate;

        @Temporal(TemporalType.DATE)
        @Column(name="CHILD_GO_SCHOOL_DATE")
        public Date getChildGoSchoolDate() {
            return childGoSchoolDate;
        }

        public void setChildGoSchoolDate(Date childGoSchoolDate) {
            this.childGoSchoolDate = childGoSchoolDate;
        }


    private Date childAdmissionDate;

        @Temporal(TemporalType.DATE)
        @Column(name="CHILD_ADMISSION_DATE")
        public Date getChildAdmissionDate() {
            return childAdmissionDate;
        }

        public void setChildAdmissionDate(Date childAdmissionDate) {
            this.childAdmissionDate = childAdmissionDate;
        }


    private Set<Institution> institution = new HashSet<Institution>();

        @ManyToMany(fetch = FetchType.LAZY)
        @Cascade(org.hibernate.annotations.CascadeType.ALL)
        @JoinTable(name="CREATIONDATE_INSTITUTION", 
                                    joinColumns=@JoinColumn(name="DATE_ID"), 
                                    inverseJoinColumns=@JoinColumn(name="INSTITUTION_ID"))
        public Set<Institution> getInstitution() {
            return institution;
        }

        public void setInstitution(Set<Institution> institutionSet) {
            this.institution = institutionSet;
        }


    private List<ScheduleRotationChild> scheduleRotationChild = new ArrayList<ScheduleRotationChild>();

        @OneToMany(fetch=FetchType.EAGER, orphanRemoval=true)
        @Cascade(org.hibernate.annotations.CascadeType.ALL)
        @JoinTable(name="SRC_DATE", 
                                    joinColumns=@JoinColumn(name="DATE_ID"),
                                    inverseJoinColumns=@JoinColumn(name="SRC_ID"))
        public List<ScheduleRotationChild> getScheduleRotationChild() {
            return scheduleRotationChild;
        }

        public void setScheduleRotationChild(
                List<ScheduleRotationChild> scheduleRotationChild) {
            this.scheduleRotationChild = scheduleRotationChild;
        }





        public void addSetInstitutions(Set<Institution> institution) {

            setInstitution(institution);

        }


        public void addSRC(List<ScheduleRotationChild> srcinstitution) {

        setScheduleRotationChild(srcinstitution);

        }



        public String toString() {

            return "\n" + "ID: " + dateId + " \n " 
            + "Дата: " +particularDate + " \n " 
            + "Дети идут в школу, год: " + childGoSchoolDate + " \n " 
            + "Дата приема детей: " + childAdmissionDate + "  " + scheduleRotationChild + " \n " ;

        }


}


1 commentaires

À quoi ressemble la classe Edu.Demidov.dom.creationDate?


5 Réponses :


1
votes

Dans le chemin PATH Attribute CreationDate.Particulardate devrait probablement être creationDate.particulardate . .

Assurez-vous que votre CreationDateDate a une méthode de getter de propriété appropriée #getparticulardate () .


2 commentaires

Ouais. Merci beaucoup d'aide pour que je devrais le mettre comme créationDate.particulardate, car ma méthode get ... () a ressemble à ceci: getpartticulardate () Le problème est résolu, mais en avait un autre, pas pour ce sujet, mais apprécie vraiment de Demandez à votre aide: Erreur d'erreur ni controlingresulte ni objet cible simple pour le nom de haricot 'CreationDate' disponible en tant qu'attribut de demande


Vous n'en passez pas le créationdate comme attribut de modèle dans le contrôleur ... BTW. Vous devriez également vérifier la réponse de Subereb. Il est correct, que le créationDate. ne doit pas être sur le chemin si c'est votre objet de commande.



7
votes

the valeurs dans votre formulaire: étiquette et formulaire: entrée Les balises doivent être relatives à l'objet de commande référencé dans : formulaire . En d'autres termes, les valeurs PATH doivent être des noms de propriétés de la classe de l'objet création . Basciellement, supprimez simplement le créationdatedate. préfixe de sorte que vous vous retrouvez avec ceci: xxx

supposant que la classe création a des propriétés (avec getters / Setteurs) appelé particulièrement gras et Childgoschooldate .


1 commentaires

Tu es un génie!!! Mon archet à toi. Vous avez résolu deux problèmes par une réponse qui a été confronté à une journée entière aujourd'hui et vous avez tellement contrarié ... merci merci de vous remercier merci beaucoup. Chears.



1
votes

J'ai eu le même problème, mais le problème est que je n'ai pas généré les getters and Setters, je les ai écrites manuellement. Tous mes chemins et méthodes étaient corrects. J'ai donc supprimé la méthode Getter and Setter que j'ai écrit manuellement et les a générées à l'aide d'Eclipse. Je ne comprends pas la logique derrière elle mais qui résout mon problème.


0 commentaires

0
votes

La classe est manquée de la variable de chemin mentionné dans la balise de formulaire.


0 commentaires

0
votes

Pour les haricots, il est important de fournir un getter avec un nom propre. Dites, si une classe traite votre classe comme un haricot et souhaite accéder à la propriété BoxType, il est indispensable de fournir une gettoxtype getterbox () sans arguments. Il y a un contrat pour le nom du getter. "Obtenir" + lettre majuscule (B) + le reste du nom de la propriété. Vous pouvez avoir une propriété publique BoxType, mais en termes de haricots, c'est USéliquesess. Vous devez retourner la valeur de ce champ dans le getter. Les getters autogénérés sont d'accord méchancetique, mais pour une valeur booléenne, une IDE Ajouter "est" au lieu de "GET".


0 commentaires