IllegalArgumentException,属性的getter方法,避免冗余数据
IllegalArgumentException, getter method of property, avoiding redundant data
我正在尝试将新的行程和地点添加到数据库中。它们之间是多对一的关系,一个地方可以分配到多个地方。地点添加正确,但在添加行程期间出现此异常...
我知道有很多类似的主题,但其中 none 帮助我解决了这个问题。
ERROR: HHH000122: IllegalArgumentException in class: pl.th.java.biuro.hibernate.Place, getter method of property: idPlace
Exception found while adding new trip: IllegalArgumentException occurred calling getter of pl.th.java.biuro.hibernate.Place.idPlace
org.hibernate.PropertyAccessException: IllegalArgumentException occurred calling getter of pl.th.java.biuro.hibernate.Place.idPlace
at org.hibernate.property.BasicPropertyAccessor$BasicGetter.get(BasicPropertyAccessor.java:192)
Hibernate 行程映射:
<hibernate-mapping>
<class name="pl.th.java.biuro.hibernate.Trip" table="Trip">
<id column="idTrip" name="idTrip" type="int"/>
<property column="date" name="date" type="date"/>
<property column="cost" name="cost" type="int"/>
<property column="profit" name="profit" type="int"/>
<property column="organisator" name="organisator" type="string"/>
<property column="period" name="period" type="int"/>
<property column="food" name="food" type="string"/>
<property column="transport" name="transport" type="string"/>
<property column="persons" name="persons" type="int"/>
<property column="kidsAmount" name="kidsAmount" type="int"/>
<property column="idHotel" name="idHotel" type="int"/>
<many-to-one name="idPlace" column="idPlace" class="pl.th.java.biuro.hibernate.Place" not-null="true" />
</class>
Hibernate 位置映射:
<hibernate-mapping>
<class name="pl.th.java.biuro.hibernate.Place" table="Place">
<id column="idPlace" name="idPlace" type="int">
<generator class="native"/>
</id>
<property column="country" name="country" type="string"/>
<property column="city" name="city" type="string"/>
<property column="island" name="island" type="string"/>
<property column="information" name="information" type="string"/>
</class>
行程class:
public class Trip {
private int idTrip;
private int idPlace;
private int idHotel;
private Date date;
private int cost;
private int profit;
private String organisator;
private int period;
private String food;
private String transport;
private int persons;
private int kidsAmount;
private String ownerName;
private String ownerLastName;
private Place place;
public Trip() {
}
public Trip(int idTrip, Date date, int cost, int profit, String organisator, int period, String food, String transport, int persons, int kidsAmount) {
this.idTrip = idTrip;
this.date = date;
this.cost = cost;
this.profit = profit;
this.organisator = organisator;
this.period = period;
this.food = food;
this.transport = transport;
this.persons = persons;
this.kidsAmount = kidsAmount;
}
public Trip(int idTrip, Date date, int cost, int profit, String organisator, int period, String food, String transport, int persons, int kidsAmount, String ownerName, String ownerLastName, Place place) {
this.idTrip = idTrip;
this.date = date;
this.cost = cost;
this.profit = profit;
this.organisator = organisator;
this.period = period;
this.food = food;
this.transport = transport;
this.persons = persons;
this.kidsAmount = kidsAmount;
this.ownerName = ownerName;
this.ownerLastName = ownerLastName;
this.place = place;
}
/**
* @return the idTrip
*/
public int getIdTrip() {
return idTrip;
}
/**
* @param idTrip the idTrip to set
*/
public void setIdTrip(int idTrip) {
this.idTrip = idTrip;
}
/**
* @return the place
*/
public Place getPlace() {
return place;
}
/**
* @param place the place to set
*/
public void setPlace(Place place) {
this.place = place;
}
And other get/set methods...
地点class:
public class Place {
private int idPlace;
private String country;
private String city;
private String island;
private String information;
public Place() {
}
public Place(String country, String city, String island, String information) {
this.country = country;
this.city = city;
this.island = island;
this.information = information;
}
/**
* @return the idPlace
*/
public int getIdPlace() {
return idPlace;
}
/**
* @param idPlace the idPlace to set
*/
public void setIdPlace(int idPlace) {
this.idPlace = idPlace;
}
EDIT1
添加适当的实体现在对我有用,但我想知道有什么方法可以避免冗余数据?例如,我添加了一个行程和一个与此行程相关的地点 X。当我添加另一个行程时,但在同一个地方 - X,这个地方再次添加到我的数据库中。我怎样才能避免这样的行为?
您应该将 int idPlace int The Trip 更改为您的对象 pl.th.java.biuro.hibernate.Place
ERROR: HHH000122: IllegalArgumentException in class: pl.th.java.biuro.hibernate.Place, getter method of property: idPlace
我想你在插入操作时得到了这个。前面的意思是,您正在向 idPlace
列插入非法参数。您将 many-to-one
与 pl.th.java.biuro.hibernate.Place
一起使用,并插入 int
作为 pl.th.java.biuro.hibernate.Place
。您必须将 idPlace
类型从 int
更改为 pl.th.java.biuro.hibernate.Place
。
希望对您有所帮助。
我正在尝试将新的行程和地点添加到数据库中。它们之间是多对一的关系,一个地方可以分配到多个地方。地点添加正确,但在添加行程期间出现此异常... 我知道有很多类似的主题,但其中 none 帮助我解决了这个问题。
ERROR: HHH000122: IllegalArgumentException in class: pl.th.java.biuro.hibernate.Place, getter method of property: idPlace
Exception found while adding new trip: IllegalArgumentException occurred calling getter of pl.th.java.biuro.hibernate.Place.idPlace
org.hibernate.PropertyAccessException: IllegalArgumentException occurred calling getter of pl.th.java.biuro.hibernate.Place.idPlace
at org.hibernate.property.BasicPropertyAccessor$BasicGetter.get(BasicPropertyAccessor.java:192)
Hibernate 行程映射:
<hibernate-mapping>
<class name="pl.th.java.biuro.hibernate.Trip" table="Trip">
<id column="idTrip" name="idTrip" type="int"/>
<property column="date" name="date" type="date"/>
<property column="cost" name="cost" type="int"/>
<property column="profit" name="profit" type="int"/>
<property column="organisator" name="organisator" type="string"/>
<property column="period" name="period" type="int"/>
<property column="food" name="food" type="string"/>
<property column="transport" name="transport" type="string"/>
<property column="persons" name="persons" type="int"/>
<property column="kidsAmount" name="kidsAmount" type="int"/>
<property column="idHotel" name="idHotel" type="int"/>
<many-to-one name="idPlace" column="idPlace" class="pl.th.java.biuro.hibernate.Place" not-null="true" />
</class>
Hibernate 位置映射:
<hibernate-mapping>
<class name="pl.th.java.biuro.hibernate.Place" table="Place">
<id column="idPlace" name="idPlace" type="int">
<generator class="native"/>
</id>
<property column="country" name="country" type="string"/>
<property column="city" name="city" type="string"/>
<property column="island" name="island" type="string"/>
<property column="information" name="information" type="string"/>
</class>
行程class:
public class Trip {
private int idTrip;
private int idPlace;
private int idHotel;
private Date date;
private int cost;
private int profit;
private String organisator;
private int period;
private String food;
private String transport;
private int persons;
private int kidsAmount;
private String ownerName;
private String ownerLastName;
private Place place;
public Trip() {
}
public Trip(int idTrip, Date date, int cost, int profit, String organisator, int period, String food, String transport, int persons, int kidsAmount) {
this.idTrip = idTrip;
this.date = date;
this.cost = cost;
this.profit = profit;
this.organisator = organisator;
this.period = period;
this.food = food;
this.transport = transport;
this.persons = persons;
this.kidsAmount = kidsAmount;
}
public Trip(int idTrip, Date date, int cost, int profit, String organisator, int period, String food, String transport, int persons, int kidsAmount, String ownerName, String ownerLastName, Place place) {
this.idTrip = idTrip;
this.date = date;
this.cost = cost;
this.profit = profit;
this.organisator = organisator;
this.period = period;
this.food = food;
this.transport = transport;
this.persons = persons;
this.kidsAmount = kidsAmount;
this.ownerName = ownerName;
this.ownerLastName = ownerLastName;
this.place = place;
}
/**
* @return the idTrip
*/
public int getIdTrip() {
return idTrip;
}
/**
* @param idTrip the idTrip to set
*/
public void setIdTrip(int idTrip) {
this.idTrip = idTrip;
}
/**
* @return the place
*/
public Place getPlace() {
return place;
}
/**
* @param place the place to set
*/
public void setPlace(Place place) {
this.place = place;
}
And other get/set methods...
地点class:
public class Place {
private int idPlace;
private String country;
private String city;
private String island;
private String information;
public Place() {
}
public Place(String country, String city, String island, String information) {
this.country = country;
this.city = city;
this.island = island;
this.information = information;
}
/**
* @return the idPlace
*/
public int getIdPlace() {
return idPlace;
}
/**
* @param idPlace the idPlace to set
*/
public void setIdPlace(int idPlace) {
this.idPlace = idPlace;
}
EDIT1 添加适当的实体现在对我有用,但我想知道有什么方法可以避免冗余数据?例如,我添加了一个行程和一个与此行程相关的地点 X。当我添加另一个行程时,但在同一个地方 - X,这个地方再次添加到我的数据库中。我怎样才能避免这样的行为?
您应该将 int idPlace int The Trip 更改为您的对象 pl.th.java.biuro.hibernate.Place
ERROR: HHH000122: IllegalArgumentException in class: pl.th.java.biuro.hibernate.Place, getter method of property: idPlace
我想你在插入操作时得到了这个。前面的意思是,您正在向 idPlace
列插入非法参数。您将 many-to-one
与 pl.th.java.biuro.hibernate.Place
一起使用,并插入 int
作为 pl.th.java.biuro.hibernate.Place
。您必须将 idPlace
类型从 int
更改为 pl.th.java.biuro.hibernate.Place
。
希望对您有所帮助。