Hibernate和IllegalArgumentException(Hibernate and IllegalArgumentException)

编程入门 行业动态 更新时间:2024-10-28 20:27:46
Hibernate和IllegalArgumentException(Hibernate and IllegalArgumentException)

我的hibernate映射给出了一个错误:

Exception in thread "main" org.hibernate.PropertyAccessException: IllegalArgumentException occurred calling getter of opdracht5.Category.id

我似乎无法弄清楚它发生在哪里......有人可以帮助我吗?

我的Category.hbm.xml:

<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="opdracht5.Category" table="Category"> <id name="id"> <generator class="increment"></generator> </id> <set name="advertenties" cascade="all"> <key column="CATEGORY_ID"></key> <one-to-many class="opdracht5.Category"/> </set> <property name="naam" type="string"></property> </class> </hibernate-mapping>

我的分类课。

public class Category { private String naam; private long id; private Set<Advertentie> advertenties; public Category() {} public Category(String naam){ this.naam = naam; } public void setNaam(String naam){ this.naam = naam; } public void setAdvertenties(Set<Advertentie> advertenties){ this.advertenties = advertenties; } public Set<Advertentie> getAdvertenties(){ return advertenties; } public String getNaam(){ return naam; } public void setId(long id){ this.id = id; } public long getId(){ return id; } }

Advertentie.hbm.xml

<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="opdracht5.Advertentie" table="Advertentie"> <id name="id"> <generator class="native"></generator> </id> <property name="naam"></property> <property name="beschrijving"></property> <property name="startPrijs"></property> <property name="actief"></property> <property name="StartDate"></property> <many-to-one name="categoryNaam" class="opdracht5.Category" column="CATEGORY_ID" not-null="true"/> </class> </hibernate-mapping>

Advertentie.java

package opdracht5; import java.util.*; public class Advertentie { private String naam; private String beschrijving; private int startPrijs; private Boolean actief; private Date StartDate; private Category categoryNaam; private long id; public Advertentie() { // TODO Auto-generated constructor stub } public Advertentie(String naam, String beschrijving, int startPrijs, Boolean actief, Date StartDate, Category categoryNaam){ this.naam = naam; this.beschrijving = beschrijving; this.startPrijs = startPrijs; this.actief = actief; this.StartDate = StartDate; this.categoryNaam = categoryNaam; } public Category getCategoryNaam(){ return categoryNaam; } public void setCategoryNaam(Category categoryNaam){ this.categoryNaam= categoryNaam; } public String getNaam(){ return naam; } public String getBeschrijving(){ return beschrijving; } public int getStartPrijs(){ return startPrijs; } public Boolean getActief(){ return actief; } public Date getStartDate(){ return StartDate; } public long getId(){ return id; } public void setId(long id){ this.id = id; } public void setNaam(String naam){ this.naam = naam; } public void setBeschrijving(String beschrijving){ this.beschrijving = beschrijving; } public void setStartPrijs(int startPrijs){ this.startPrijs = startPrijs; } public void setActief(Boolean actief){ this.actief = actief; } public void setStartDate(Date StartDate){ this.StartDate = StartDate; } }

最后几条log4j行:

DEBUG org.hibernate.event.def.AbstractSaveEventListener - generated identifier: 1, using strategy: org.hibernate.id.IncrementGenerator **strong text**10022 [main] DEBUG org.hibernate.event.def.AbstractSaveEventListener - saving [opdracht5.Category#1] **strong text**10025 [main] DEBUG org.hibernate.engine.Cascade - processing cascade ACTION_SAVE_UPDATE for: opdracht5.Category **strong text**10025 [main] DEBUG org.hibernate.engine.Cascade - done processing cascade ACTION_SAVE_UPDATE for: opdracht5.Category **strong text**10033 [main] DEBUG org.hibernate.event.def.WrapVisitor - Wrapped collection in role: opdracht5.Category.advertenties **strong text**10037 [main] DEBUG org.hibernate.engine.Cascade - processing cascade ACTION_SAVE_UPDATE for: opdracht5.Category **strong text**10037 [main] DEBUG org.hibernate.engine.Cascade - cascade ACTION_SAVE_UPDATE for collection: opdracht5.Category.advertenties **strong text**10037 [main] DEBUG org.hibernate.engine.CascadingAction - cascading to saveOrUpdate: opdracht5.Category **strong text**10038 [main] ERROR org.hibernate.property.BasicPropertyAccessor - IllegalArgumentException in class: opdracht5.Category, getter method of property: id

如何解决这个持久性错误? 我现在一直盯着我的屏幕几个小时。

My hibernate mapping gives an error of:

Exception in thread "main" org.hibernate.PropertyAccessException: IllegalArgumentException occurred calling getter of opdracht5.Category.id

I cannot seem to figure out where it occurs... can someone help me out?

My Category.hbm.xml:

<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="opdracht5.Category" table="Category"> <id name="id"> <generator class="increment"></generator> </id> <set name="advertenties" cascade="all"> <key column="CATEGORY_ID"></key> <one-to-many class="opdracht5.Category"/> </set> <property name="naam" type="string"></property> </class> </hibernate-mapping>

my Category class.

public class Category { private String naam; private long id; private Set<Advertentie> advertenties; public Category() {} public Category(String naam){ this.naam = naam; } public void setNaam(String naam){ this.naam = naam; } public void setAdvertenties(Set<Advertentie> advertenties){ this.advertenties = advertenties; } public Set<Advertentie> getAdvertenties(){ return advertenties; } public String getNaam(){ return naam; } public void setId(long id){ this.id = id; } public long getId(){ return id; } }

Advertentie.hbm.xml

<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="opdracht5.Advertentie" table="Advertentie"> <id name="id"> <generator class="native"></generator> </id> <property name="naam"></property> <property name="beschrijving"></property> <property name="startPrijs"></property> <property name="actief"></property> <property name="StartDate"></property> <many-to-one name="categoryNaam" class="opdracht5.Category" column="CATEGORY_ID" not-null="true"/> </class> </hibernate-mapping>

Advertentie.java

package opdracht5; import java.util.*; public class Advertentie { private String naam; private String beschrijving; private int startPrijs; private Boolean actief; private Date StartDate; private Category categoryNaam; private long id; public Advertentie() { // TODO Auto-generated constructor stub } public Advertentie(String naam, String beschrijving, int startPrijs, Boolean actief, Date StartDate, Category categoryNaam){ this.naam = naam; this.beschrijving = beschrijving; this.startPrijs = startPrijs; this.actief = actief; this.StartDate = StartDate; this.categoryNaam = categoryNaam; } public Category getCategoryNaam(){ return categoryNaam; } public void setCategoryNaam(Category categoryNaam){ this.categoryNaam= categoryNaam; } public String getNaam(){ return naam; } public String getBeschrijving(){ return beschrijving; } public int getStartPrijs(){ return startPrijs; } public Boolean getActief(){ return actief; } public Date getStartDate(){ return StartDate; } public long getId(){ return id; } public void setId(long id){ this.id = id; } public void setNaam(String naam){ this.naam = naam; } public void setBeschrijving(String beschrijving){ this.beschrijving = beschrijving; } public void setStartPrijs(int startPrijs){ this.startPrijs = startPrijs; } public void setActief(Boolean actief){ this.actief = actief; } public void setStartDate(Date StartDate){ this.StartDate = StartDate; } }

last few log4j lines:

DEBUG org.hibernate.event.def.AbstractSaveEventListener - generated identifier: 1, using strategy: org.hibernate.id.IncrementGenerator **strong text**10022 [main] DEBUG org.hibernate.event.def.AbstractSaveEventListener - saving [opdracht5.Category#1] **strong text**10025 [main] DEBUG org.hibernate.engine.Cascade - processing cascade ACTION_SAVE_UPDATE for: opdracht5.Category **strong text**10025 [main] DEBUG org.hibernate.engine.Cascade - done processing cascade ACTION_SAVE_UPDATE for: opdracht5.Category **strong text**10033 [main] DEBUG org.hibernate.event.def.WrapVisitor - Wrapped collection in role: opdracht5.Category.advertenties **strong text**10037 [main] DEBUG org.hibernate.engine.Cascade - processing cascade ACTION_SAVE_UPDATE for: opdracht5.Category **strong text**10037 [main] DEBUG org.hibernate.engine.Cascade - cascade ACTION_SAVE_UPDATE for collection: opdracht5.Category.advertenties **strong text**10037 [main] DEBUG org.hibernate.engine.CascadingAction - cascading to saveOrUpdate: opdracht5.Category **strong text**10038 [main] ERROR org.hibernate.property.BasicPropertyAccessor - IllegalArgumentException in class: opdracht5.Category, getter method of property: id

How to fix this persistent error? I have been staring at my screen for hours now.

最满意答案

您在Category.hbm.xml中的映射是错误的

它应该是

<one-to-many class="opdracht5.Advertentie"/>

参考链接https://docs.jboss.org/hibernate/orm/3.3/reference/en/html/mapping.html

Your mapping is wrong in Category.hbm.xml

It should be

<one-to-many class="opdracht5.Advertentie"/>

ref link https://docs.jboss.org/hibernate/orm/3.3/reference/en/html/mapping.html

更多推荐

Category,id,hibernate,opdracht,public,电脑培训,计算机培训,IT培训"/> <meta na

本文发布于:2023-07-07 15:26:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1065180.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:Hibernate   IllegalArgumentException

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!