当前位置: 首页 > 面试题库 >

IllegalArgumentException:期望IdClass映射

龙正初
2023-03-14
问题内容

部署我的应用程序期间,发生了该异常。我的应用程序中有很多课程,我不知道必须放置在哪里@IdClass以及该异常意味着什么。我正在使用Hibernate
4.1和JBoss AS 7.1

12:10:23,761 INFO  [org.hibernate.engine.jdbc.internal.LobCreatorBuilder] (MSC service thread 1-5) HHH000424: Disabling contextual LOB creation as createClob() method threw error : java.lang.reflect.InvocationTargetException
12:10:24,075 ERROR [org.hibernate.tool.hbm2ddl.SchemaExport] (MSC service thread 1-5) HHH000389: Unsuccessful: drop sequence hibernate_sequence
12:10:24,076 ERROR [org.hibernate.tool.hbm2ddl.SchemaExport] (MSC service thread 1-5) ERROR: sequence "hibernate_sequence" does not exist
12:10:24,281 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-5) MSC00001: Failed to start service jboss.persistenceunit."kladr.ear/kladr-ejb-1.0-SNAPSHOT.jar#primary": org.jboss.msc.service.StartException in service jboss.persistenceunit."kladr.ear/kladr-ejb-1.0-SNAPSHOT.jar#primary": Failed to start service
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1767) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [rt.jar:1.6.0_35]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [rt.jar:1.6.0_35]
    at java.lang.Thread.run(Thread.java:662) [rt.jar:1.6.0_35]
Caused by: java.lang.IllegalArgumentException: expecting IdClass mapping
    at org.hibernate.ejb.metamodel.AttributeFactory$3.resolveMember(AttributeFactory.java:878)
    at org.hibernate.ejb.metamodel.AttributeFactory$4.resolveMember(AttributeFactory.java:915)
    at org.hibernate.ejb.metamodel.AttributeFactory.determineAttributeMetadata(AttributeFactory.java:423)
    at org.hibernate.ejb.metamodel.AttributeFactory.buildAttribute(AttributeFactory.java:91)
    at org.hibernate.ejb.metamodel.MetadataContext.wrapUp(MetadataContext.java:214)
    at org.hibernate.ejb.metamodel.MetamodelImpl.buildMetamodel(MetamodelImpl.java:64)
    at org.hibernate.ejb.EntityManagerFactoryImpl.<init>(EntityManagerFactoryImpl.java:91)
    at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:904)
    at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:889)
    at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:73)
    at org.jboss.as.jpa.service.PersistenceUnitServiceImpl.createContainerEntityManagerFactory(PersistenceUnitServiceImpl.java:162)
    at org.jboss.as.jpa.service.PersistenceUnitServiceImpl.start(PersistenceUnitServiceImpl.java:85)
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
    ... 3 more

问题答案:

@IdClass批注用于定义包含id的Class。即通常用于定义复合键的情况。即包含多个属性的键组合。如果是这样,那么我们将这样做。请看下面的示例。我们定义一个类,IdClass并使用@Id来定义各种Id
s for thisIdClass`。

范例:

@Entity
@IdClass(AssignedRoleId.class)
public class AssignedRole
{
  @Id
  @ManyToOne
  private User userId;

  @Id
  @ManyToOne  
  private Role roleId;

  private Date dateAssigned;
}

希望这可以帮助。



 类似资料:
  • 我试图获取json对象,它告诉我它需要一个值,尽管我在r.json()中定义了json的路径。还有,当我做r.headers[内容类型]时,给我文本/html;字符集=ISO-8859-1。。。谢谢大家抽出时间

  • 描述量 描述随机变量最完备的方法是写出该随机变量的概率分布。然而,正如我们在前面章节看到的,概率分布的表达往往都比较复杂,信息量很大。这如同我们购置汽车的时候,一辆汽车的全面数据可以说是海量的,比如汽车尺寸,油箱大小等等。我们选择一辆汽车时,往往只使用有限的几个具有代表性的量来代表汽车的主要特征,比如排气量,最大马力。我们信赖这几个量,因为它们可以“粗糙”的描述汽车的主要性能。这些量是汽车全面数据

  • 问题内容: 这是代码: 这是错误: 我的代码有什么问题? 问题答案: 您混用了制表符和空格。这可能会导致一些令人困惑的错误。 我建议使用 唯一的 标签或 仅 缩进空间。 通常只使用空格是较容易的选择。大多数编辑器都有一个选项,可以将制表符自动转换为空格。如果您的编辑器具有此选项,请将其打开。 顺便说一句,您的代码比需要的更为冗长。代替这个: 只是这样做: 您在此行上似乎也有一个错误: 我将让您找出

  • 参考资料: http://blog.csdn.net/zouxy09/article/details/8537620 http://www.cnblogs.com/jerrylead/archive/2011/04/06/2006936.html 我的数据挖掘算法代码实现: https://github.com/linyiqun/DataMiningAlgorithm 介绍 em算法是一种迭代算法

  • 问题内容: 在我们的一个内部角度应用程序中,显示了一个许可证文本框。由于内部有很多文本,因此以元素表示的许可证框具有滚动条。 问题: 如何测试元素是否具有滚动? 这是元素的HTML表示形式: 在哪里定义了以下CSS样式: 问题答案: 技巧(最初在这里提出)是比较属性: 该CSS属性指定 元素的内容区域的高度 。内容区域位于元素的填充,边框和边距之内。 与: 的只读属性是一个 元素的含量的高度,其中