当前位置: 首页 > 知识库问答 >
问题:

com中的未知映射。德巴兹。误判。模型使用者令牌,引用的属性未知:com。德巴兹。误判。模型代币使用者

哈泰
2023-03-14

当我将我的war部署到Tomcat 8(使用mvn tomcat: run-war命令)时,我无法解决这个新异常。

以下是粘贴的异常:

GRAVE:将上下文初始化事件发送到类org的侦听器实例时发生异常。springframework。网状物上下文ContextLoaderListener组织。springframework。豆。工厂BeanCreationException:创建在类路径资源[WEB-INF/data context.xml]中定义的名为“mg em default”的bean时出错:调用init方法失败;嵌套异常是javax。坚持不懈PersistenceException:[PersistenceUnit:mistergift_pu]无法在组织上构建Hibernate SessionFactory。springframework。豆。工厂支持AbstractAutowireCapableBeanFactory。在org上初始化ebean(AbstractAutowireCapableBeanFactory.java:1566)。springframework。豆。工厂支持AbstractAutowireCapableBeanFactory。org上的doCreateBean(AbstractAutowireCapableBeanFactory.java:539)。springframework。豆。工厂支持AbstractAutowireCapableBeanFactory。在org上创建Bean(AbstractAutowireCapableBeanFactory.java:476)。springframework。豆。工厂支持AbstractBeanFactory 1美元。org上的getObject(AbstractBeanFactory.java:302)。springframework。豆。工厂支持DefaultSingletonBeanRegistry。getSingleton(DefaultSingletonBeanRegistry.java:230)位于org。springframework。豆。工厂支持抽象工厂。doGetBean(AbstractBeanFactory.java:298)位于org。springframework。豆。工厂支持抽象工厂。getBean(AbstractBeanFactory.java:193)位于org。springframework。上下文支持AbstractApplicationContext。getBean(AbstractApplicationContext.java:956)位于org。springframework。上下文支持AbstractApplicationContext。在org上完成BeanFactoryInitialization(AbstractApplicationContext.java:747)。springframework。上下文支持AbstractApplicationContext。在org上刷新(AbstractApplicationContext.java:480)。springframework。网状物上下文上下文加载器。在org上配置和刷新WebApplicationContext(ContextLoader.java:403)。springframework。网状物上下文上下文加载器。位于org的initWebApplicationContext(ContextLoader.java:306)。springframework。网状物上下文ContextLoaderListener。contextInitialized(ContextLoaderListener.java:106)位于org。阿帕奇。卡塔琳娜。果心标准上下文。listenerStart(StandardContext.java:4939)位于org。阿帕奇。卡塔琳娜。果心标准上下文。startInternal(StandardContext.java:5434)位于org。阿帕奇。卡塔琳娜。util。生命周期酶。在org上启动(LifecycleBase.java:150)。阿帕奇。卡塔琳娜。果心ContainerBase$StartChild。在org上调用(ContainerBase.java:1559)。阿帕奇。卡塔琳娜。果心ContainerBase$StartChild。在java上调用(ContainerBase.java:1549)。util。同时发生的未来任务。在java上运行(FutureTask.java:266)。util。同时发生的线程池执行器。java上的runWorker(ThreadPoolExecutor.java:1142)。util。同时发生的线程池执行器$Worker。在java上运行(ThreadPoolExecutor.java:617)。朗。丝线。运行(Thread.java:745)的原因是:javax。坚持不懈PersistenceException:[PersistenceUnit:mistergift_pu]无法在组织上构建Hibernate SessionFactory。冬眠jpa。靴子内部的EntityManagerFactoryBuilderImpl。org上的persistenceException(EntityManagerFactoryBuilderImpl.java:1225)。冬眠jpa。靴子内部的EntityManagerFactoryBuilderImpl。在org上访问$600(EntityManagerFactoryBuilderImpl.java:119)。冬眠jpa。靴子内部的EntityManagerFactoryBuilderImpl$4。在org上执行(EntityManagerFactoryBuilderImpl.java:853)。冬眠jpa。靴子内部的EntityManagerFactoryBuilderImpl$4。在org上执行(EntityManagerFactoryBuilderImpl.java:843)。冬眠靴子登记处。类加载。内部的ClassLoaderServiceImpl。在org上使用tccl(ClassLoaderServiceImpl.java:397)。冬眠jpa。靴子内部的EntityManagerFactoryBuilderImpl。在org上构建(EntityManagerFactoryBuilderImpl.java:842)。springframework。奥姆。jpa。小贩SpringHibernateJSistenceProvider。在org上创建containerentitymanagerfactory(springhibernatejbapersistenceprovider.java:60)。springframework。奥姆。jpa。LocalContainerEntityManagerFactoryBean。在org上创建NativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:343)。springframework。奥姆。jpa。AbstractEntityManagerFactoryBean。AfterPropertieSet(AbstractEntityManagerFactoryBean.java:318)位于org。springframework。豆。工厂支持AbstractAutowireCapableBeanFactory。org上的invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1625)。springframework。豆。工厂支持AbstractAutowireCapableBeanFactory。initializeBean(AbstractAutowireCapableBeanFactory.java:1562)。。。还有21个

原因:org。冬眠AnnotationException:com中的未知映射。德巴兹。误判。模型使用者令牌,引用的属性未知:com。德巴兹。误判。模型代币用户在组织。冬眠cfg。一次又一次。doSecondPass(OneToOneSecondPass.java:160)位于org。冬眠cfg。配置originalSecondPassCompile(Configuration.java:1695)位于org。冬眠cfg。配置secondPassCompile(Configuration.java:1424)位于org。冬眠cfg。配置buildSessionFactory(Configuration.java:1844)位于org。冬眠jpa。靴子内部的EntityManagerFactoryBuilderImpl$4。执行(EntityManagerFactoryBuilderImpl.java:850)。。。还有29个

和两个实体(不带getter/setter):

@Entity
@Table(schema = "mistergift", name = "users")
public class User {

/**
 * The user id.
 */
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;

/**
 * The user first name.
 */
@Column(name = "first_name", length = 255, nullable = false)
private String firstName;

/**
 * The user last name.
 */
@Column(name = "last_name", length = 255, nullable = false)
private String lastName;

/**
 * The user email.
 */
@Column(name = "email", length = 100, nullable = false)
private String email;

/**
 * The user password.
 */
@Column(name = "password", length = 255, nullable = false)
private String password;

/** The user role. */
@Column(name = "role", nullable = false)
@Enumerated(EnumType.ORDINAL)
private Role role;

/** The user token. */
@OneToOne(mappedBy = "user")
private Token token;

/**
 *
 */
public User() {
    this.groups = new ArrayList<Group>();
}

// ...

@Entity
@Table(schema = "mistergift", name = "user_token")
public class Token {
@Id
@GeneratedValue(generator = "uuid")
@GenericGenerator(name = "uuid", strategy = "uuid2")
@Column(name = "value", length = 75, nullable = false)
private String value;

@Column(name = "expiration_date", nullable = false)
@Temporal(TemporalType.DATE)
private Date expirationDate;

@OneToOne(mappedBy = "token")
private User user;

/**
 *
 */
public Token() { }

// ...

你能给我一些建议来解决这个问题吗?

谢谢

共有3个答案

燕建中
2023-03-14

尝试改变你的代码如下所示,它无法找到"com.debatz.mistergift.model.Token.user",因为它的工作区分大小写。

@OneToOne(mappedBy = "User")

@OneToOne(mappedBy = "Token")

我建议使用Hibernate插件来生成这些dao类,当然,您可以自定义它们。但是你可以避免一些打字错误,也可以节省时间。

苗阳文
2023-03-14

因此,我将此主题标记为resolve。我终于找到了前进的方向。v、 拉迪涅夫的回答是正确的,但我还有一个错误,隐藏了真正的问题。这是我的组件扫描注释,它被重定向到一个不存在的包(我已经重命名了entities包)。谢谢大家!

闻梓
2023-03-14

不能在关联的两侧使用mappedBy

这是不正确的

/** The user token. */
@OneToOne(mappedBy = "user")
private Token token; 

@OneToOne(mappedBy = "token")
private User user;

首先,您应该决定哪个持久化将是关联的所有者(哪个表将有外键)。例如,如果User将有一个外键列fk_token具有Token标识符

@Entity
@Table(schema = "mistergift", name = "users")
public class User {

    /** The user token. */
    @OneToOne
    @JoinColumn(name = "fk_token")
    private Token token;

}

@Entity
@Table(schema = "mistergift", name = "user_token")
public class Token {

    @OneToOne(mappedBy = "token", fetch = FetchType.LAZY)
    private User user;

}

如果令牌将有一个带有用户标识符的外键列fk_用户

@Entity
@Table(schema = "mistergift", name = "users")
public class User {

    /** The user token. */
    @OneToOne(mappedBy = "user")
    private Token token;

}

@Entity
@Table(schema = "mistergift", name = "user_token")
public class Token {

    @OneToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "fk_user")
    private User user;

}

更新

异常在第OneToOneSecondPass行出现。doSecondPass(Map)因为otherSideProperty==null。Hibernate尝试查找标记。用户知道持久类中的属性,但失败。因此,Hibernate并不认为<代码>令牌< /代码>是持久的。原因可能是

>

  • Token没有@Entity注释。

    令牌未映射到Hibernate中。cfg。xml

    @magik报告,对具有持久性的包的扫描不正确。

    Hibernate显然有一个非常不清楚的错误消息,可能是错误的。

  •  类似资料:
    • 我正在使用,在属性映射过程中,我遇到了这个错误,我该如何解决它? 这是我的< code>pom.xml 这是截图在这里输入图像描述

    • 在执行和(为了防止我的应用程序应用一些第三方库的缓存版本而需要)后,我不能再构建我的应用程序,因为行 导致此错误的原因: 原因可能是什么?根据这个答案,我推断我的IS_CI_BUILD属性应该是布尔值,但每当我将其更改为或并尝试运行应用程序时,会弹出一个编辑配置对话框,我不确定该怎么办。

    • 我的模型由不同类型的预算组成。这些预算具有不同的属性。我想在这些不同类型的预算之间建立一种“一对一”的关系。假设我有一个BudgetLevel1,它有很多BudgetLevel2,它也有很多BucketLevel3。所有这些BudgetLevel扩展了类预算 我的预算课程 预算级别1类 预算级别2类 预算级别3 看起来类似 这是我得到的错误 org.springframework.beans.fa

    • 我使用SpringBoot2.0.0.RC1,Hibernate的最新版本。文件 File 文件 错误: org.springframework.beans.factory.BeanCreationExc0019:错误创建在类路径资源[org/springframe/boo/autoconfiure/orm/jpa/HibernateJpaConfiguration.class]中定义的名称'en

    • 我正在使用和,在属性映射期间我遇到了这个错误,我该如何修复它? 她的是我的 这里有一个Screenshottenter图像描述

    • 当我尝试通过枚举将源中的字符串映射到目标中的整数时。ModelMapper失败。 来源 目的地 字符串和整数之间的映射在枚举中定义