Java Can';t使用注释在SpringIOC中创建请求范围bean
我正在尝试创建一个spring应用程序,允许用户注册一个帐户。这涉及到将数据提交给控制器,控制器将数据传递给调用my DAO的服务。这是我有史以来的第一个Spring应用程序,我一直在遵循一系列不同的指南,以获得我的应用程序 因此,当我将请求范围添加到bean中时,我的问题出现了。我向服务和模型bean添加了请求作用域,因为单例作用域在不同的http请求中将数据保留在我的对象中。因此,当我运行应用程序并将数据发送到控制器时,我不会收到任何控制台错误,但我的应用程序不会执行任何操作。我调试的时候 请注意,当DAO尝试插入用户对象“org.hibernate.MappingException:Unknown entity:com.nvc.slink.model.user$$EnhancerBySpringCGLIB$$6c38e058”时,我遇到了这个错误 当我发现这个错误时,当我查看我的用户对象时,我注意到它有一些奇怪的成员变量:Java Can';t使用注释在SpringIOC中创建请求范围bean,java,spring,hibernate,inversion-of-control,Java,Spring,Hibernate,Inversion Of Control,我正在尝试创建一个spring应用程序,允许用户注册一个帐户。这涉及到将数据提交给控制器,控制器将数据传递给调用my DAO的服务。这是我有史以来的第一个Spring应用程序,我一直在遵循一系列不同的指南,以获得我的应用程序 因此,当我将请求范围添加到bean中时,我的问题出现了。我向服务和模型bean添加了请求作用域,因为单例作用域在不同的http请求中将数据保留在我的对象中。因此,当我运行应用程序并将数据发送到控制器时,我不会收到任何控制台错误,但我的应用程序不会执行任何操作。我调试的时候
org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor@5ced77ee
org.springframework.aop.framework.CglibAopProxy$DynamicUnadvisedInterceptor@40464597
org.springframework.aop.framework.CglibAopProxy$SerializableNoOp@21df885d
org.springframework.aop.framework.CglibAopProxy$SerializableNoOp@5c608df2
org.springframework.aop.framework.CglibAopProxy$AdvisedDispatcher@6b85c397
org.springframework.aop.framework.CglibAopProxy$EqualsInterceptor@191d598d
org.springframework.aop.framework.CglibAopProxy$HashCodeInterceptor@445db793
我假设这与我将请求范围添加到bean中直接相关,这也让我相信我不会搞砸。我已经试着解决这个问题一个星期了,感觉好像我已经阅读了所有与我的问题相关的stackoverflow问题,但并没有幸运地解决这个问题
下面是一些相关的源文件(我确实故意抹掉了一些包名)
我的配置:
我的java运行类
//Application.java
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.web.SpringBootServletInitializer;
import org.springframework.boot.SpringApplication;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.transaction.annotation.EnableTransactionManagement;
@Configuration
@ComponentScan
@EnableTransactionManagement
@EnableAutoConfiguration
public class Application extends SpringBootServletInitializer{
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(applicationClass);
}
private static Class<Application> applicationClass = Application.class;
}
}
模型豆
import java.util.Date;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Scope;
import org.springframework.context.annotation.ScopedProxyMode;
import com.nvc.slink.model.User;
import com.nvc.slink.model.Userauthentication;
@Configuration
@ComponentScan({ "XX.XXX.XXXX" })
public class ModelConfig {
@Bean
@Scope(value = "request", proxyMode = ScopedProxyMode.TARGET_CLASS)
public User user(){
Date d = new Date();
User u = new User();
u.setULastactive(d);
return u;
}
@Bean
@Scope(value = "request", proxyMode = ScopedProxyMode.TARGET_CLASS)
public Userauthentication userauthentication(){
Userauthentication ua = new Userauthentication();
return ua;
}
}
服务豆
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Scope;
import org.springframework.context.annotation.ScopedProxyMode;
import com.nvc.slink.service.RegisterServiceImpl;
import com.nvc.slink.service.UserServiceImpl;
@Configuration
@ComponentScan({ "XX.XXX.XXXX" })
public class ServiceConfig {
@Bean
@Scope(value = "request", proxyMode = ScopedProxyMode.TARGET_CLASS)
public UserServiceImpl userService(){
return new UserServiceImpl();
}
@Bean
@Scope(value = "request", proxyMode = ScopedProxyMode.TARGET_CLASS)
public RegisterServiceImpl registerService(){
return new RegisterServiceImpl();
}
}
刀豆
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import com.nvc.slink.dao.RegisterDaoImpl;
import com.nvc.slink.dao.UserDaoImpl;
@Configuration
@ComponentScan({ "XX.XXX.XXXX" })
public class DaoConfig {
@Bean
public UserDaoImpl userDao(){
return new UserDaoImpl();
}
@Bean
public RegisterDaoImpl registerDao(){
return new RegisterDaoImpl();
}
}
用户注册控制器
import javax.validation.Valid;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import com.nvc.slink.service.IRegisterService;
import com.nvc.slink.transfermodels.UserTO;
@RestController
public class RegisterController {
@Autowired
private IRegisterService registerService;
/*
@Autowired
private IUserService userService;
@RequestMapping("/name/{name}")
public String greeting(@PathVariable String name) {
return name;
}
@RequestMapping("/all")
public List<User> index() {
return userService.getAllUsers();
}*/
@RequestMapping(value= "/register", method = RequestMethod.POST)
public Object register(@Valid @RequestBody UserTO user,BindingResult result){ //Make into register Object
if (result.hasErrors()) {
return result.getAllErrors();
}
return registerService.register(user);
}
}
用户模型
// Generated Dec 29, 2014 7:43:39 PM by Hibernate Tools 4.3.1
import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import static javax.persistence.GenerationType.IDENTITY;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.UniqueConstraint;
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;
/**
* User generated by hbm2java
*/
@Entity
@Table(name = "user", catalog = "slinkdb", uniqueConstraints = {
@UniqueConstraint(columnNames = "u_iduserauthentication"),
@UniqueConstraint(columnNames = "u_email"),
@UniqueConstraint(columnNames = "u_username") })
public class User implements java.io.Serializable {
private Integer iduser;
private Userauthentication userauthentication;
private String UEmail;
private String UImgsrc;
private Date ULastactive;
private boolean UPrivate = false;
private String UUsername;
private Set<UserCode> userCodes = new HashSet<UserCode>(0);
private Set<UserDefault> userDefaults = new HashSet<UserDefault>(0);
private Set<Gateway> gateways = new HashSet<Gateway>(0);
public User() {
}
public User(String UEmail, boolean UPrivate) {
this.UEmail = UEmail;
this.UPrivate = UPrivate;
}
public User(Userauthentication userauthentication, String UEmail,
String UImgsrc, Date ULastactive, boolean UPrivate,
String UUsername, Set<UserCode> userCodes,
Set<UserDefault> userDefaults, Set<Gateway> gateways) {
this.userauthentication = userauthentication;
this.UEmail = UEmail;
this.UImgsrc = UImgsrc;
this.ULastactive = ULastactive;
this.UPrivate = UPrivate;
this.UUsername = UUsername;
this.userCodes = userCodes;
this.userDefaults = userDefaults;
this.gateways = gateways;
}
@Id
@GeneratedValue(strategy = IDENTITY)
@Column(name = "iduser", unique = true, nullable = false)
public Integer getIduser() {
return this.iduser;
}
public void setIduser(Integer iduser) {
this.iduser = iduser;
}
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "u_iduserauthentication", unique = true)
@Cascade(CascadeType.ALL)
public Userauthentication getUserauthentication() {
return this.userauthentication;
}
public void setUserauthentication(Userauthentication userauthentication) {
this.userauthentication = userauthentication;
}
@Column(name = "u_email", unique = true, nullable = false, length = 100)
public String getUEmail() {
return this.UEmail;
}
public void setUEmail(String UEmail) {
this.UEmail = UEmail;
}
@Column(name = "u_imgsrc", length = 45)
public String getUImgsrc() {
return this.UImgsrc;
}
public void setUImgsrc(String UImgsrc) {
this.UImgsrc = UImgsrc;
}
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "u_lastactive", length = 19)
public Date getULastactive() {
return this.ULastactive;
}
public void setULastactive(Date ULastactive) {
this.ULastactive = ULastactive;
}
@Column(name = "u_private", nullable = false)
public boolean isUPrivate() {
return this.UPrivate;
}
public void setUPrivate(boolean UPrivate) {
this.UPrivate = UPrivate;
}
@Column(name = "u_username", unique = true, length = 45)
public String getUUsername() {
return this.UUsername;
}
public void setUUsername(String UUsername) {
this.UUsername = UUsername;
}
@OneToMany(fetch = FetchType.LAZY, mappedBy = "user")
public Set<UserCode> getUserCodes() {
return this.userCodes;
}
public void setUserCodes(Set<UserCode> userCodes) {
this.userCodes = userCodes;
}
@OneToMany(fetch = FetchType.LAZY, mappedBy = "user")
public Set<UserDefault> getUserDefaults() {
return this.userDefaults;
}
public void setUserDefaults(Set<UserDefault> userDefaults) {
this.userDefaults = userDefaults;
}
@OneToMany(fetch = FetchType.LAZY, mappedBy = "user")
public Set<Gateway> getGateways() {
return this.gateways;
}
public void setGateways(Set<Gateway> gateways) {
this.gateways = gateways;
}
}
在发生错误的DAO级别添加了完整堆栈跟踪
org.hibernate.MappingException: Unknown entity: com.nvc.slink.model.User$$EnhancerBySpringCGLIB$$332d007d
at org.hibernate.internal.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:1096)
at org.hibernate.internal.SessionImpl.getEntityPersister(SessionImpl.java:1443)
at org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:116)
at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:209)
at org.hibernate.event.internal.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:55)
at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:194)
at org.hibernate.event.internal.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:49)
at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:90)
at org.hibernate.internal.SessionImpl.fireSave(SessionImpl.java:715)
at org.hibernate.internal.SessionImpl.save(SessionImpl.java:707)
at org.hibernate.internal.SessionImpl.save(SessionImpl.java:702)
at com.nvc.slink.dao.RegisterDaoImpl.insertUser(RegisterDaoImpl.java:19)
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:483)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:136)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207)
at com.sun.proxy.$Proxy61.insertUser(Unknown Source)
at com.nvc.slink.service.RegisterServiceImpl.createNewUser(RegisterServiceImpl.java:43)
at com.nvc.slink.service.RegisterServiceImpl.register(RegisterServiceImpl.java:58)
at com.nvc.slink.service.RegisterServiceImpl$$FastClassBySpringCGLIB$$8757c338.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:708)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:98)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:262)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:95)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:644)
at com.nvc.slink.service.RegisterServiceImpl$$EnhancerBySpringCGLIB$$ce76b984.register(<generated>)
at com.nvc.slink.service.RegisterServiceImpl$$FastClassBySpringCGLIB$$8757c338.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:708)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:133)
at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:121)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:644)
at com.nvc.slink.service.RegisterServiceImpl$$EnhancerBySpringCGLIB$$d399c44.register(<generated>)
at com.nvc.slink.controller.RegisterController.register(RegisterController.java:42)
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:483)
at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:215)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:749)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:689)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:83)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:938)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:870)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:863)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:77)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
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:503)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1736)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1695)
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)
org.hibernate.MappingException:未知实体:com.nvc.slink.model.User$$EnhancerBySpringCGLIB$$332d007d
位于org.hibernate.internal.SessionFactoryImpl.getEntityypersister(SessionFactoryImpl.java:1096)
位于org.hibernate.internal.SessionImpl.getEntityPersister(SessionImpl.java:1443)
位于org.hibernate.event.internal.AbstractSaveEventListener.SaveWithGenerateId(AbstractSaveEventListener.java:116)
在org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:209)中
位于org.hibernate.event.internal.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:55)
位于org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:194)
位于org.hibernate.event.internal.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:49)
位于org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:90)
位于org.hibernate.internal.SessionImpl.fireSave(SessionImpl.java:715)
位于org.hibernate.internal.SessionImpl.save(SessionImpl.java:707)
位于org.hibernate.internal.SessionImpl.save(SessionImpl.java:702)
位于com.nvc.slink.dao.RegisterDaoImpl.insertUser(RegisterDaoImpl.java:19)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:483)
位于org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
位于org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
在org.springframework.aop.framework.ReflectiveMethodInvocation.procedue(ReflectiveMethodInvocation.java:157)上
位于org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:136)
在org.springframework.aop.framework.ReflectiveMethodInvocation.procedue(ReflectiveMethodInvocation.java:179)上
位于org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207)
位于com.sun.proxy.$Proxy61.insertUser(未知来源)
位于com.nvc.slink.service.RegisterServiceImpl.createNewUser(RegisterServiceImpl.java:43)
位于com.nvc.slink.service.RegisterServiceImpl.register(RegisterServiceImpl.java:58)
位于com.nvc.slink.service.RegisterServiceImpl$$FastClassBySpringCGLIB$$8757c338.invoke()
位于org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
位于org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:708)
在org.springframework.aop.framework.ReflectiveMethodInvocation.procedue(ReflectiveMethodInvocation.java:157)上
位于org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:98)
位于org.springframework.transaction.interceptor.TransactionSpectSupport.invokeWithinTransaction(TransactionSpectSupport.java:262)
位于org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:95)
在org.springframework.aop.framework.ReflectiveMethodInvocation.procedue(ReflectiveMethodInvocation.java:179)上
位于org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:644)
在com.nvc.slink.service.RegisterServiceImpl$$EnhancerBySpringCGLIB$$ce76b984.register()上
位于com.nvc.slink.service.RegisterServiceImpl$$FastClassBySpringCGLIB$$8757c338.invoke()
位于org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
位于org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:708)
在org.springframework.aop.framework.ReflectiveMethodInvocation.procedue(ReflectiveMethodInvocation.java:157)上
位于org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:133)
位于org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:121)
在
// Generated Dec 29, 2014 7:43:39 PM by Hibernate Tools 4.3.1
import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import static javax.persistence.GenerationType.IDENTITY;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.UniqueConstraint;
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;
/**
* User generated by hbm2java
*/
@Entity
@Table(name = "user", catalog = "slinkdb", uniqueConstraints = {
@UniqueConstraint(columnNames = "u_iduserauthentication"),
@UniqueConstraint(columnNames = "u_email"),
@UniqueConstraint(columnNames = "u_username") })
public class User implements java.io.Serializable {
private Integer iduser;
private Userauthentication userauthentication;
private String UEmail;
private String UImgsrc;
private Date ULastactive;
private boolean UPrivate = false;
private String UUsername;
private Set<UserCode> userCodes = new HashSet<UserCode>(0);
private Set<UserDefault> userDefaults = new HashSet<UserDefault>(0);
private Set<Gateway> gateways = new HashSet<Gateway>(0);
public User() {
}
public User(String UEmail, boolean UPrivate) {
this.UEmail = UEmail;
this.UPrivate = UPrivate;
}
public User(Userauthentication userauthentication, String UEmail,
String UImgsrc, Date ULastactive, boolean UPrivate,
String UUsername, Set<UserCode> userCodes,
Set<UserDefault> userDefaults, Set<Gateway> gateways) {
this.userauthentication = userauthentication;
this.UEmail = UEmail;
this.UImgsrc = UImgsrc;
this.ULastactive = ULastactive;
this.UPrivate = UPrivate;
this.UUsername = UUsername;
this.userCodes = userCodes;
this.userDefaults = userDefaults;
this.gateways = gateways;
}
@Id
@GeneratedValue(strategy = IDENTITY)
@Column(name = "iduser", unique = true, nullable = false)
public Integer getIduser() {
return this.iduser;
}
public void setIduser(Integer iduser) {
this.iduser = iduser;
}
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "u_iduserauthentication", unique = true)
@Cascade(CascadeType.ALL)
public Userauthentication getUserauthentication() {
return this.userauthentication;
}
public void setUserauthentication(Userauthentication userauthentication) {
this.userauthentication = userauthentication;
}
@Column(name = "u_email", unique = true, nullable = false, length = 100)
public String getUEmail() {
return this.UEmail;
}
public void setUEmail(String UEmail) {
this.UEmail = UEmail;
}
@Column(name = "u_imgsrc", length = 45)
public String getUImgsrc() {
return this.UImgsrc;
}
public void setUImgsrc(String UImgsrc) {
this.UImgsrc = UImgsrc;
}
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "u_lastactive", length = 19)
public Date getULastactive() {
return this.ULastactive;
}
public void setULastactive(Date ULastactive) {
this.ULastactive = ULastactive;
}
@Column(name = "u_private", nullable = false)
public boolean isUPrivate() {
return this.UPrivate;
}
public void setUPrivate(boolean UPrivate) {
this.UPrivate = UPrivate;
}
@Column(name = "u_username", unique = true, length = 45)
public String getUUsername() {
return this.UUsername;
}
public void setUUsername(String UUsername) {
this.UUsername = UUsername;
}
@OneToMany(fetch = FetchType.LAZY, mappedBy = "user")
public Set<UserCode> getUserCodes() {
return this.userCodes;
}
public void setUserCodes(Set<UserCode> userCodes) {
this.userCodes = userCodes;
}
@OneToMany(fetch = FetchType.LAZY, mappedBy = "user")
public Set<UserDefault> getUserDefaults() {
return this.userDefaults;
}
public void setUserDefaults(Set<UserDefault> userDefaults) {
this.userDefaults = userDefaults;
}
@OneToMany(fetch = FetchType.LAZY, mappedBy = "user")
public Set<Gateway> getGateways() {
return this.gateways;
}
public void setGateways(Set<Gateway> gateways) {
this.gateways = gateways;
}
}
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import com.nvc.slink.model.User;
@Repository
public class RegisterDaoImpl implements IRegisterDao {
@Autowired
private SessionFactory sessionFactory;
@Override
public User insertUser(User u) throws Exception {
try{
Session session = sessionFactory.getCurrentSession();
session.save(u);
return u;
}catch(Exception e){ //Could not insert user;
throw new Exception();
}
}
}
org.hibernate.MappingException: Unknown entity: com.nvc.slink.model.User$$EnhancerBySpringCGLIB$$332d007d
at org.hibernate.internal.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:1096)
at org.hibernate.internal.SessionImpl.getEntityPersister(SessionImpl.java:1443)
at org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:116)
at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:209)
at org.hibernate.event.internal.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:55)
at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:194)
at org.hibernate.event.internal.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:49)
at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:90)
at org.hibernate.internal.SessionImpl.fireSave(SessionImpl.java:715)
at org.hibernate.internal.SessionImpl.save(SessionImpl.java:707)
at org.hibernate.internal.SessionImpl.save(SessionImpl.java:702)
at com.nvc.slink.dao.RegisterDaoImpl.insertUser(RegisterDaoImpl.java:19)
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:483)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:136)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207)
at com.sun.proxy.$Proxy61.insertUser(Unknown Source)
at com.nvc.slink.service.RegisterServiceImpl.createNewUser(RegisterServiceImpl.java:43)
at com.nvc.slink.service.RegisterServiceImpl.register(RegisterServiceImpl.java:58)
at com.nvc.slink.service.RegisterServiceImpl$$FastClassBySpringCGLIB$$8757c338.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:708)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:98)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:262)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:95)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:644)
at com.nvc.slink.service.RegisterServiceImpl$$EnhancerBySpringCGLIB$$ce76b984.register(<generated>)
at com.nvc.slink.service.RegisterServiceImpl$$FastClassBySpringCGLIB$$8757c338.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:708)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:133)
at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:121)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:644)
at com.nvc.slink.service.RegisterServiceImpl$$EnhancerBySpringCGLIB$$d399c44.register(<generated>)
at com.nvc.slink.controller.RegisterController.register(RegisterController.java:42)
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:483)
at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:215)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:749)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:689)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:83)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:938)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:870)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:863)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:77)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
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:503)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1736)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1695)
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)