2016-4-20 9:34:20.232 DEBUG [http-bio-8080-exec-12] Found mapping for [GET] path=/menu/allTreeNode : MenuModule.allTreeNode(...)
2016-4-20 9:34:20.233 DEBUG [http-bio-8080-exec-12] Get 'menuModule'<class com.jenkin.nutz.module.MenuModule>
2016-4-20 9:34:20.235 DEBUG [http-bio-8080-exec-12] SELECT * FROM tmenu order by seq
2016-4-20 9:34:20.237 INFO [http-bio-8080-exec-12] Fail to value by setter
org.nutz.castor.FailToCastObjectException: Fail to cast from <java.lang.String> to <com.jenkin.nutz.bean.Tmenu> for {0} because:
BorningException:Fail to born 'com.jenkin.nutz.bean.Tmenu'
by args: [
@(0)]
at org.nutz.castor.Castors.cast(Castors.java:258)
at org.nutz.castor.Castors.castTo(Castors.java:320)
at org.nutz.lang.inject.InjectBySetter.inject(InjectBySetter.java:25)
at org.nutz.dao.impl.entity.field.AbstractEntityField.setValue(AbstractEntityField.java:53)
at org.nutz.dao.impl.entity.field.NutMappingField.injectValue(NutMappingField.java:77)
at org.nutz.dao.impl.entity.NutEntity.getObject(NutEntity.java:210)
at org.nutz.dao.impl.sql.pojo.PojoQueryEntityCallback$1.createObject(PojoQueryEntityCallback.java:23)
at org.nutz.dao.pager.ResultSetLooping.doLoop(ResultSetLooping.java:47)
at org.nutz.dao.impl.sql.pojo.PojoQueryEntityCallback.invoke(PojoQueryEntityCallback.java:27)
at org.nutz.dao.impl.jdbc.NutPojo.onAfter(NutPojo.java:108)
at org.nutz.dao.impl.sql.run.NutDaoExecutor._runSelect(NutDaoExecutor.java:234)
at org.nutz.dao.impl.sql.run.NutDaoExecutor.exec(NutDaoExecutor.java:43)
at org.nutz.dao.impl.DaoSupport$DaoExec.invoke(DaoSupport.java:250)
at org.nutz.dao.impl.sql.run.NutDaoRunner.run(NutDaoRunner.java:64)
at org.nutz.dao.impl.DaoSupport._exec(DaoSupport.java:205)
at org.nutz.dao.impl.NutDao.query(NutDao.java:436)
at org.nutz.dao.impl.NutDao.query(NutDao.java:441)
at com.jenkin.nutz.service.MenuService.allTreeNode(MenuService.java:27)
at com.jenkin.nutz.module.MenuModule.allTreeNode(MenuModule.java:22)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.nutz.mvc.impl.processor.MethodInvokeProcessor.process(MethodInvokeProcessor.java:23)
at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
at org.nutz.mvc.impl.processor.AdaptorProcessor.process(AdaptorProcessor.java:33)
at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
at org.nutz.mvc.impl.processor.ActionFiltersProcessor.process(ActionFiltersProcessor.java:40)
at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
at org.nutz.mvc.impl.processor.ModuleProcessor.process(ModuleProcessor.java:113)
at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
at org.nutz.mvc.impl.processor.EncodingProcessor.process(EncodingProcessor.java:27)
at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
at org.nutz.mvc.impl.processor.UpdateRequestAttributesProcessor.process(UpdateRequestAttributesProcessor.java:15)
at org.nutz.mvc.impl.NutActionChain.doChain(NutActionChain.java:40)
at org.nutz.mvc.impl.ActionInvoker.invoke(ActionInvoker.java:64)
at org.nutz.mvc.ActionHandler.handle(ActionHandler.java:31)
at org.nutz.mvc.NutFilter.doFilter(NutFilter.java:182)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.nutz.lang.born.BorningException: Fail to born 'com.jenkin.nutz.bean.Tmenu'
by args: [
@(0)]
at org.nutz.lang.Mirror.born(Mirror.java:929)
at org.nutz.castor.castor.String2Object.cast(String2Object.java:16)
at org.nutz.castor.castor.String2Object.cast(String2Object.java:1)
at org.nutz.castor.Castors.cast(Castors.java:252)
... 54 more
2016-4-20 9:34:20.248 WARN [http-bio-8080-exec-12] Error@/menu/allTreeNode :
org.nutz.dao.DaoException: java.lang.RuntimeException: Fail to set '0'[ null ] by setter com.jenkin.nutz.bean.Tmenu.'setTmenu()' because [org.nutz.lang.born.BorningException: Fail to born 'com.jenkin.nutz.bean.Tmenu'
by args: [
@(0)]]: Fail to born 'com.jenkin.nutz.bean.Tmenu'
by args: [
@(0)]
at org.nutz.dao.impl.sql.run.NutDaoRunner.run(NutDaoRunner.java:76)
at org.nutz.dao.impl.DaoSupport._exec(DaoSupport.java:205)
at org.nutz.dao.impl.NutDao.query(NutDao.java:436)
at org.nutz.dao.impl.NutDao.query(NutDao.java:441)
at com.jenkin.nutz.service.MenuService.allTreeNode(MenuService.java:27)
at com.jenkin.nutz.module.MenuModule.allTreeNode(MenuModule.java:22)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.nutz.mvc.impl.processor.MethodInvokeProcessor.process(MethodInvokeProcessor.java:23)
at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
at org.nutz.mvc.impl.processor.AdaptorProcessor.process(AdaptorProcessor.java:33)
at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
at org.nutz.mvc.impl.processor.ActionFiltersProcessor.process(ActionFiltersProcessor.java:40)
at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
at org.nutz.mvc.impl.processor.ModuleProcessor.process(ModuleProcessor.java:113)
at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
at org.nutz.mvc.impl.processor.EncodingProcessor.process(EncodingProcessor.java:27)
at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
at org.nutz.mvc.impl.processor.UpdateRequestAttributesProcessor.process(UpdateRequestAttributesProcessor.java:15)
at org.nutz.mvc.impl.NutActionChain.doChain(NutActionChain.java:40)
at org.nutz.mvc.impl.ActionInvoker.invoke(ActionInvoker.java:64)
at org.nutz.mvc.ActionHandler.handle(ActionHandler.java:31)
at org.nutz.mvc.NutFilter.doFilter(NutFilter.java:182)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.RuntimeException: Fail to set '0'[ null ] by setter com.jenkin.nutz.bean.Tmenu.'setTmenu()' because [org.nutz.lang.born.BorningException: Fail to born 'com.jenkin.nutz.bean.Tmenu'
by args: [
@(0)]]: Fail to born 'com.jenkin.nutz.bean.Tmenu'
by args: [
@(0)]
at org.nutz.lang.Lang.makeThrow(Lang.java:99)
at org.nutz.lang.inject.InjectBySetter.inject(InjectBySetter.java:31)
at org.nutz.dao.impl.entity.field.AbstractEntityField.setValue(AbstractEntityField.java:53)
at org.nutz.dao.impl.entity.field.NutMappingField.injectValue(NutMappingField.java:77)
at org.nutz.dao.impl.entity.NutEntity.getObject(NutEntity.java:210)
at org.nutz.dao.impl.sql.pojo.PojoQueryEntityCallback$1.createObject(PojoQueryEntityCallback.java:23)
at org.nutz.dao.pager.ResultSetLooping.doLoop(ResultSetLooping.java:47)
at org.nutz.dao.impl.sql.pojo.PojoQueryEntityCallback.invoke(PojoQueryEntityCallback.java:27)
at org.nutz.dao.impl.jdbc.NutPojo.onAfter(NutPojo.java:108)
at org.nutz.dao.impl.sql.run.NutDaoExecutor._runSelect(NutDaoExecutor.java:234)
at org.nutz.dao.impl.sql.run.NutDaoExecutor.exec(NutDaoExecutor.java:43)
at org.nutz.dao.impl.DaoSupport$DaoExec.invoke(DaoSupport.java:250)
at org.nutz.dao.impl.sql.run.NutDaoRunner.run(NutDaoRunner.java:64)
... 41 more
package com.jenkin.nutz.bean;
import java.io.Serializable;
import java.util.HashSet;
import java.util.Set;
import org.nutz.dao.entity.annotation.Column;
import org.nutz.dao.entity.annotation.Many;
import org.nutz.dao.entity.annotation.Name;
import org.nutz.dao.entity.annotation.Table;
/**
* tmenu
* @author otom3
* @date 2016-04-20
/
@Table("tmenu")
public class Tmenu implements Serializable {
private static final long serialVersionUID = 1L;
/*
* tmenu
*/
@Name
private java.lang.String id;//ID
@Column
private java.lang.String iconcls;//ICONCLS
@Column
private java.math.BigDecimal seq;//SEQ
@Column
private java.lang.String text;//TEXT
@Column
private java.lang.String url;//URL
@Many(field = "PID", target = Tmenu.class)
private Tmenu tmenu;//PID
public Tmenu getTmenu() {
return tmenu;
}
public void setTmenu(Tmenu tmenu) {
this.tmenu = tmenu;
}
private Set<Tmenu> tmenus = new HashSet<Tmenu>(0);
public Set<Tmenu> getTmenus() {
return tmenus;
}
public void setTmenus(Set<Tmenu> tmenus) {
this.tmenus = tmenus;
}
public java.lang.String getId(){
return this.id;
}
public void setId(java.lang.String id){
this.id = id;
}
public java.lang.String getIconcls(){
return this.iconcls;
}
public void setIconcls(java.lang.String iconcls){
this.iconcls = iconcls;
}
public java.math.BigDecimal getSeq(){
return this.seq;
}
public void setSeq(java.math.BigDecimal seq){
this.seq = seq;
}
public java.lang.String getText(){
return this.text;
}
public void setText(java.lang.String text){
this.text = text;
}
public java.lang.String getUrl(){
return this.url;
}
public void setUrl(java.lang.String url){
this.url = url;
}
}
跟普通的@One没区别
public class Tmenu {
@Id
private String id;
private String pid;
@One(target=Tmenu, field="pid")
private Tmenu parent;
// 其他属性及getter/setter
}
@wendal(wendal) package com.jenkin.nutz.bean;
import java.io.Serializable;
import java.util.List;
import org.nutz.dao.entity.annotation.Column;
import org.nutz.dao.entity.annotation.Many;
import org.nutz.dao.entity.annotation.Name;
import org.nutz.dao.entity.annotation.One;
import org.nutz.dao.entity.annotation.Table;
/**
* tmenu
* @author otom3
* @date 2016-04-20
/
@Table("tmenu")
public class Tmenu implements Serializable {
private static final long serialVersionUID = 1L;
/*
* tmenu
*/
@Name
private java.lang.String id;//ID
@Column
private java.lang.String iconcls;//ICONCLS
@Column
private java.math.BigDecimal seq;//SEQ
@Column
private java.lang.String text;//TEXT
@Column
private java.lang.String url;//URL
@Column("PID")
private String pid;
public String getPid() {
return pid;
}
public void setPid(String pid) {
this.pid = pid;
}
@One(target=Tmenu.class, field="pid")
private Tmenu parent;//多对一
public Tmenu getParent() {
return parent;
}
public void setParent(Tmenu parent) {
this.parent = parent;
}
@Many(field = "pid", target = Tmenu.class)
private List<Tmenu> children;//一对多
public List<Tmenu> getChildren() {
return children;
}
public void setChildren(List<Tmenu> children) {
this.children = children;
}
public java.lang.String getId(){
return this.id;
}
public void setId(java.lang.String id){
this.id = id;
}
public java.lang.String getIconcls(){
return this.iconcls;
}
public void setIconcls(java.lang.String iconcls){
this.iconcls = iconcls;
}
public java.math.BigDecimal getSeq(){
return this.seq;
}
public void setSeq(java.math.BigDecimal seq){
this.seq = seq;
}
public java.lang.String getText(){
return this.text;
}
public void setText(java.lang.String text){
this.text = text;
}
public java.lang.String getUrl(){
return this.url;
}
public void setUrl(java.lang.String url){
this.url = url;
}
}
@One(target=Tmenu.class, field="pid")
private Tmenu parent;//多对一
加了@one注解后,断点测试parent一直都是空的啊,难道不会调用这个
public void setParent(Tmenu parent) {
this.parent = parent;
}方法给parent赋值吗?