Java 无法将entities.UserBean强制转换为entities.UserBean

Java 无法将entities.UserBean强制转换为entities.UserBean,java,hibernate,spring-boot,Java,Hibernate,Spring Boot,嘿,我正在使用hibernate设置一个spring应用程序。我的性格有些问题: entities.UserBean cannot be cast to entities.UserBean java.lang.ClassCastException: entities.UserBean cannot be cast to entities.UserBean at dao.UserDao.findByUsername(UserDao.java:38) at services.Use

嘿,我正在使用hibernate设置一个spring应用程序。我的性格有些问题:

 entities.UserBean cannot be cast to entities.UserBean
java.lang.ClassCastException: entities.UserBean cannot be cast to entities.UserBean
    at dao.UserDao.findByUsername(UserDao.java:38)
    at services.UserService.SelByUsername(UserService.java:20)
    at mainapp.servlet.ProvaServlet.doGet(ProvaServlet.java:29)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:526)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:861)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1579)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Unknown Source)
和另一个一样,我尝试添加@Entity(name=“Users”),但仍然没有帮助,我真的不知道我做错了什么。这里有我的实体和配置以及dao:

package entities;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name = "Users")
public class UserBean {
    @Id
    @Column(name="username", length = 16, nullable = false)
    private String username;

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

    public UserBean(String username, String password) {
        this.username = username;
        this.password = password;
    }

    public UserBean() {

    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

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

}
道:

包dao;
导入java.util.List;
导入org.hibernate.query.query;
导入org.hibernate.Session;
导入org.hibernate.Transaction;
导入entities.UserBean;
导入util.HibernateUtil;
公共类UserDao{
公共无效用户(UserBean用户){
尝试(会话会话=HibernateUtil.getSessionFactory().openSession()){
事务tx=会话.beginTransaction();
session.persist(用户);
tx.commit();
}
}
public void DelUser(UserBean用户){
尝试(会话会话=HibernateUtil.getSessionFactory().openSession()){
事务tx=会话.beginTransaction();
删除(用户);
tx.commit();
}
}
公共UserBean findByUsername(字符串用户名){
尝试(会话会话=HibernateUtil.getSessionFactory().openSession()){
返回session.get(UserBean.class,用户名);
}
}
公共列表findAll(){
尝试(会话会话=HibernateUtil.getSessionFactory().openSession()){
返回session.createQuery(“来自用户”,UserBean.class).getResultList();
}
}
}
休眠配置:

<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>

        <!-- JDBC Database connection settings -->
        <property name="connection.driver_class">com.mysql.cj.jdbc.Driver</property>
        <property name="connection.url">jdbc:mysql://localhost/ledger?serverTimezone=UTC</property>
        <property name="connection.username">developer</property>
        <property name="connection.password">password</property>

        <!-- Dialetto SQL del DB a cui ci colleghiamo -->
        <property name="dialect">org.hibernate.dialect.MariaDB103Dialect</property>
        <!-- Proprieta' che indica se stampare a console l'SQL generato -->
        <property name="show_sql">true</property>

        <!-- Scelta della modalita' di aggiornamento dello schema -->
        <property name="hbm2ddl.auto">update</property>

        <!-- dbcp connection pool configuration -->
        <property name="hibernate.dbcp.initialSize">5</property>
        <property name="hibernate.dbcp.maxTotal">20</property>
        <property name="hibernate.dbcp.maxIdle">10</property>
        <property name="hibernate.dbcp.minIdle">5</property>
        <property name="hibernate.dbcp.maxWaitMillis">-1</property>

        <!-- mapping entita' -->
        <mapping class="entities.UserBean" />
        <mapping class="entities.TransactionBean" />
    </session-factory>
</hibernate-configuration>

com.mysql.cj.jdbc.Driver
jdbc:mysql://localhost/ledger?serverTimezone=UTC
开发商
密码
org.hibernate.dialogue.mariadb103方言
真的
更新
5.
20
10
5.
-1
Pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.1.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>it.jac</groupId>
    <artifactId>Personale-Ledger</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>Personale-Ledger</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>5.4.8.Final</version>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.10</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.18</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

4.0.0
org.springframework.boot
spring启动程序父级
2.2.1.发布
是的,杰克
个人分类账
0.0.1-快照
个人分类账
SpringBoot的演示项目
1.8
org.springframework.boot
弹簧启动装置
org.springframework.boot
SpringBootStarterWeb
org.springframework.boot
弹簧靴开发工具
运行时
真的
org.springframework.boot
弹簧启动机tomcat
假如
org.hibernate
冬眠核心
5.4.8.最终版本
org.projectlombok
龙目
1.18.10
mysql
mysql连接器java
8.0.18
org.springframework.boot
springbootmaven插件
提前打电话

编辑
为您的实体实现可序列化的接口

public Class UserBean implements Serializable{}

org.springframework.boot
弹簧靴开发工具
运行时
真的

在我的例子中,这个依赖关系是不是UserBean类在一个单独的jar中?是的,每个代码段都是不同的.java文件我的意思是.jar文件,但是antway添加了串行版本UIDdid,项目还没有导出,仍然没有修复它。你确定两个类文件完全相同吗?您不能做的一件事是将这种类型的类文件移动到一个单独的jar中,并将它们作为依赖项添加。项目没有导出,每个实体只有一个类
public Class UserBean implements Serializable{}
<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
</dependency>