gpt4 book ai didi

调用 setter 和 getter 时出现 Java : org. hibernate.PropertyAccessException

转载 作者:行者123 更新时间:2023-11-29 07:47:39 26 4
gpt4 key购买 nike

我正在构建一个使用 java reSTLet 和 Hibernate 的应用程序。

我有用户实体类,每当我调用 http get 时。我收到错误。

{
"error": "20000:Hibernate Exception. : org.hibernate.PropertyAccessException: IllegalArgumentException occurred while calling setter of tecd.persistence.entity.User.idUser",
"status": 500
}

这是我的实体类。

package tecd.persistence.entity;

import java.io.Serializable;
import java.sql.Timestamp;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

import org.json.JSONObject;

/**
* @author Rohit
*
*/
@Entity
@Table(name = "user")
public class User implements Serializable {

private static final long serialVersionUID = 1L;

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "iduser", nullable = false, unique = true, length = 255)
private String idUser;

@Column(name = "name", nullable = true, length = 255)
private String name;

@Column(name = "username", nullable = false,unique = true, length = 255)
private String userName;

@Column(name = "password", nullable = false, length = 255)
private String password;


@Column(name = "contactFirstName", nullable = true, length = 255)
private String contactFirstName;

@Column(name = "contactLastName", nullable = true, length = 255)
private String contactLastName;

@Column(name = "contactEmail", nullable = true, length = 255)
private String contactEmail;

@Column(name = "contactMobile", nullable = true, length = 32)
private String contactMobile;

@Column(name = "contactPhone", nullable = true, length = 32)
private String contactPhone;

@Column(name = "contactAddress", nullable = true, columnDefinition = "MEDIUMTEXT")
private String contactAddress;

@Column(name = "status", nullable = false)
private Integer status;

@Column(name = "type", nullable = false)
private Integer type;

@Column(name = "createdDT", nullable = false)
private Timestamp createdDate;

@Column(name = "updatedDT", nullable = true)
private Timestamp updatedDate;


@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("idUser = ").append(this.idUser).append(",");
sb.append("name = ").append(this.name).append(",");

sb.append("username = ").append(this.userName).append(",");
sb.append("password = ").append(this.password).append(",");

sb.append("contactAddress = ").append(this.contactAddress).append(",");
sb.append("contactEmail = ").append(this.contactEmail).append(",");
sb.append("status = ").append(this.status).append(",");
sb.append("type = ").append(this.type).append(",");
sb.append("contactFirstName = ").append(this.contactFirstName)
.append(",");
sb.append("contactLastName = ").append(this.contactLastName)
.append(",");
sb.append("contactPhone = ").append(this.contactPhone).append(",");
sb.append("contactMobile = ").append(this.contactMobile).append(",");
sb.append("createdDate = ").append(this.createdDate).append(",");
sb.append("updatedDate = ").append(this.updatedDate);
return sb.toString();
}

public JSONObject toJSON() {

try {
JSONObject jsonObj = new JSONObject();
jsonObj.put("iduser", this.idUser);
jsonObj.put("username", this.userName);
jsonObj.put("password", this.password);
jsonObj.put("createdDate", this.createdDate);
jsonObj.put("status", this.status.toString());
jsonObj.put("type", this.type.toString());

// These fields may have null values
if (this.name != null)
jsonObj.put("name", setValue(this.name));
if (this.contactFirstName != null)
jsonObj.put("contactFirstName", setValue(this.contactFirstName));
if (this.contactLastName != null)
jsonObj.put("contactLastName", setValue(this.contactLastName));
if (this.contactAddress != null)
jsonObj.put("contactAddress", setValue(this.contactAddress));
if (this.contactPhone != null)
jsonObj.put("contactPhone", setValue(this.contactPhone));
if (this.contactMobile != null)
jsonObj.put("contactMobile", setValue(this.contactMobile));
if (this.contactEmail != null)
jsonObj.put("contactEmail", setValue(this.contactEmail));
if (this.updatedDate != null)
jsonObj.put("updatedDate", setValue(this.updatedDate));
if (this.contactPhone != null)
jsonObj.put("contactPhone", setValue(this.contactPhone));
if (this.contactAddress != null)
jsonObj.put("contactAddress", setValue(this.contactAddress));
System.out.println("business JSON object"+jsonObj);
return jsonObj;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}

public Object setValue(Object input) {

Object fieldValue = ((input == null) ? JSONObject.NULL.toString()
: input);
return fieldValue;
}

public String getPassword() {
return password;
}

public void setPassword(String password) {
this.password = password;
}


public String getUserName() {
return userName ;
}

public void setUserName(String userName) {
this.userName = userName;
}



public String getidUser() {
return idUser;
}

public void setidUser(String idUser) {
this.idUser = idUser;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getContactFirstName() {
return contactFirstName;
}

public void setContactFirstName(String contactFirstName) {
this.contactFirstName = contactFirstName;
}

public String getContactLastName() {
return contactLastName;
}

public void setContactLastName(String contactLastName) {
this.contactLastName = contactLastName;
}

public String getContactEmail() {
return contactEmail;
}

public void setContactEmail(String contactEmail) {
this.contactEmail = contactEmail;
}

public String getContactMobile() {
return contactMobile;
}

public void setContactMobile(String contactMobile) {
this.contactMobile = contactMobile;
}

public String getContactPhone() {
return contactPhone;
}

public void setContactPhone(String contactPhone) {
this.contactPhone = contactPhone;
}

public String getContactAddress() {
return contactAddress;
}

public void setContactAddress(String contactAddress) {
this.contactAddress = contactAddress;
}

public Integer getStatus() {
return status;
}

public void setStatus(Integer status) {
this.status = status;
}

public Integer getType() {
return type;
}

public void setType(Integer type) {
this.type = type;
}

public Timestamp getCreatedDate() {
return createdDate;
}

public void setCreatedDate(Timestamp createdDate) {
this.createdDate = createdDate;
}

public Timestamp getUpdatedDate() {
return updatedDate;
}

public void setUpdatedDate(Timestamp updatedDate) {
this.updatedDate = updatedDate;
}

}

相应的 xml 文件看起来像

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="tecd.persistence.entity.User" table="user">
<id name="idUser" type="long" unsaved-value="null">
<column name="idUser" not-null="true"/>
<generator class="identity"/>
</id>
<property name="userName">
<column name="username" not-null="true" />
</property>
<property name="password">
<column name="password" not-null="true" />
</property>
<property name="status">
<column name="status" not-null="true" />
</property>
<property name="type">
<column name="type" not-null="true" />
</property>
<property name="createdDate">
<column name="createdDT" not-null="true" />
</property>
<property name="updatedDate">
<column name="updatedDT" not-null="false" />
</property>
<property name="name">
<column name="name" length="255" not-null="false" />
</property>
<property name="contactFirstName">
<column name="contactFirstName" length="255" not-null="false" />
</property>
<property name="contactLastName">
<column name="contactLastName" length="255" not-null="false" />
</property>
<property name="contactEmail">
<column name="contactEmail" length="255" not-null="false" />
</property>
<property name="contactMobile">
<column name="contactMobile" length="32" not-null="false" />
</property>
<property name="contactPhone">
<column name="contactPhone" length="32" not-null="false" />
</property>
<property name="contactAddress">
<column name="contactAddress" not-null="false" />
</property>

</class>
</hibernate-mapping>

请告诉我这里有什么问题。是否有任何 Java 版本问题或我无法弄清楚这个问题。

Mysql表看起来像

CREATE TABLE `user` (
`idUser` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(255) DEFAULT NULL,
`password` varchar(255) DEFAULT NULL,
`name` varchar(255) DEFAULT NULL,
`contactFirstName` varchar(255) DEFAULT NULL,
`contactLastName` varchar(255) DEFAULT NULL,
`contactEmail` varchar(255) DEFAULT NULL,
`contactMobile` varchar(32) DEFAULT NULL,
`contactPhone` varchar(32) DEFAULT NULL,
`contactAddress` mediumtext,
`status` int(11) NOT NULL,
`type` int(11) NOT NULL,
`createdDT` datetime NOT NULL,
`updatedDT` datetime DEFAULT NULL,
PRIMARY KEY (`idUser`)
)

错误:

org.hibernate.PropertyAccessException: IllegalArgumentException occurred while calling setter of tecd.persistence.entity.User.idUser
at org.hibernate.property.BasicPropertyAccessor$BasicSetter.set(BasicPropertyAccessor.java:104)
at org.hibernate.tuple.entity.AbstractEntityTuplizer.setIdentifier(AbstractEntityTuplizer.java:211)
at org.hibernate.tuple.entity.AbstractEntityTuplizer.instantiate(AbstractEntityTuplizer.java:353)
at org.hibernate.persister.entity.AbstractEntityPersister.instantiate(AbstractEntityPersister.java:3600)
at org.hibernate.impl.SessionImpl.instantiate(SessionImpl.java:1275)
at org.hibernate.impl.SessionImpl.instantiate(SessionImpl.java:1264)
at org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1290)
at org.hibernate.loader.Loader.getRow(Loader.java:1197)
at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:568)
at org.hibernate.loader.Loader.doQuery(Loader.java:689)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224)
at org.hibernate.loader.Loader.doList(Loader.java:2211)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2095)
at org.hibernate.loader.Loader.list(Loader.java:2090)
at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:375)
at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:338)
at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:172)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
at tecd.persistence.UserDAO.viewUser(UserDAO.java:53)
at tecd.resource.UserResource.viewUser(UserResource.java:64)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.restlet.resource.ServerResource.doHandle(ServerResource.java:503)
at org.restlet.resource.ServerResource.get(ServerResource.java:707)
at org.restlet.resource.ServerResource.doHandle(ServerResource.java:589)
at org.restlet.resource.ServerResource.doNegotiatedHandle(ServerResource.java:649)
at org.restlet.resource.ServerResource.doConditionalHandle(ServerResource.java:348)
at org.restlet.resource.ServerResource.handle(ServerResource.java:952)
at org.restlet.resource.Finder.handle(Finder.java:246)
at org.restlet.routing.Filter.doHandle(Filter.java:159)
at org.restlet.routing.Filter.handle(Filter.java:206)
at org.restlet.routing.Router.doHandle(Router.java:431)
at org.restlet.routing.Router.handle(Router.java:648)
at org.restlet.routing.Filter.doHandle(Filter.java:159)
at org.restlet.routing.Filter.handle(Filter.java:206)
at org.restlet.routing.Filter.doHandle(Filter.java:159)
at org.restlet.routing.Filter.handle(Filter.java:206)
at org.restlet.routing.Filter.doHandle(Filter.java:159)
at org.restlet.engine.application.StatusFilter.doHandle(StatusFilter.java:155)
at org.restlet.routing.Filter.handle(Filter.java:206)
at org.restlet.routing.Filter.doHandle(Filter.java:159)
at org.restlet.routing.Filter.handle(Filter.java:206)
at org.restlet.engine.CompositeHelper.handle(CompositeHelper.java:211)
at org.restlet.engine.application.ApplicationHelper.handle(ApplicationHelper.java:84)
at org.restlet.Application.handle(Application.java:381)
at org.restlet.routing.Filter.doHandle(Filter.java:159)
at org.restlet.routing.Filter.handle(Filter.java:206)
at org.restlet.routing.Router.doHandle(Router.java:431)
at org.restlet.routing.Router.handle(Router.java:648)
at org.restlet.routing.Filter.doHandle(Filter.java:159)
at org.restlet.routing.Filter.handle(Filter.java:206)
at org.restlet.routing.Router.doHandle(Router.java:431)
at org.restlet.routing.Router.handle(Router.java:648)
at org.restlet.routing.Filter.doHandle(Filter.java:159)
at org.restlet.engine.application.StatusFilter.doHandle(StatusFilter.java:155)
at org.restlet.routing.Filter.handle(Filter.java:206)
at org.restlet.routing.Filter.doHandle(Filter.java:159)
at org.restlet.routing.Filter.handle(Filter.java:206)
at org.restlet.engine.CompositeHelper.handle(CompositeHelper.java:211)
at org.restlet.Component.handle(Component.java:392)
at org.restlet.Server.handle(Server.java:516)
at org.restlet.engine.connector.ServerConnectionHelper.handle(ServerConnectionHelper.java:257)
at org.restlet.engine.connector.ServerConnectionHelper.doHandleInbound(ServerConnectionHelper.java:186)
at org.restlet.engine.connector.BaseHelper$2.run(BaseHelper.java:593)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.IllegalArgumentException: argument type mismatch
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.hibernate.property.BasicPropertyAccessor$BasicSetter.set(BasicPropertyAccessor.java:42)
... 69 more
2014-06-08 13:51:11 0:0:0:0:0:0:0:1 - - 8100 GET /TECDRestService/user/Arohit - 500 - 0 1907 http://localhost:8100 Mozilla/5.0 (Windows NT 6.3; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0 -

最佳答案

您的 idUser 在 db 中被定义为一个 long 值。在您的对象中,它是一个 String。请更改为 Integer

关于调用 setter 和 getter 时出现 Java : org. hibernate.PropertyAccessException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24095348/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com