Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java @枚举类型的公式导致Hibernate 4.2.8.Final中的ClassCastException_Java_Hibernate_Enums_Formula - Fatal编程技术网

Java @枚举类型的公式导致Hibernate 4.2.8.Final中的ClassCastException

Java @枚举类型的公式导致Hibernate 4.2.8.Final中的ClassCastException,java,hibernate,enums,formula,Java,Hibernate,Enums,Formula,我正在尝试将@公式映射到Hibernate 4.2.8.Final中的枚举值 但是,我遇到以下ClassCastException: java.lang.ClassCastException: org.hibernate.mapping.Formula cannot be cast to org.hibernate.mapping.Column at org.hibernate.mapping.SimpleValue.createParameterImpl(SimpleValue.ja

我正在尝试将
@公式
映射到Hibernate 4.2.8.Final中的枚举值

但是,我遇到以下ClassCastException:

 java.lang.ClassCastException: org.hibernate.mapping.Formula cannot be cast to org.hibernate.mapping.Column
    at org.hibernate.mapping.SimpleValue.createParameterImpl(SimpleValue.java:499)
    at org.hibernate.mapping.SimpleValue.getType(SimpleValue.java:324)
    at org.hibernate.mapping.SimpleValue.isValid(SimpleValue.java:310)
    at org.hibernate.mapping.Property.isValid(Property.java:241)
    at org.hibernate.mapping.PersistentClass.validate(PersistentClass.java:496)
    at org.hibernate.mapping.RootClass.validate(RootClass.java:270)
    at org.hibernate.cfg.Configuration.validate(Configuration.java:1358)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1849)
    at org.hibernate.testing.junit4.BaseCoreFunctionalTestCase.buildSessionFactory(BaseCoreFunctionalTestCase.java:149)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.hibernate.testing.junit4.TestClassMetadata.performCallbackInvocation(TestClassMetadata.java:205)
    ... 15 more
这是我的代码:

// Read-only property
private FooBarEnum foo = FooBarEnum.DEFAULT;

// Calculate value of property
@Formula("(SELECT MIN(A.foobar) AS MIN_FOO FROM table_b B JOIN table_a A ON B.fk_bar=A.id WHERE B.id=id)")
@Enumerated(EnumType.STRING)
public FooBarEnum getFooBarEnum() {
    return this.foo;
}
我发现它描述了完全相同的问题。该错误已修复,但我无法更新到4.2.16+

有什么变通方法可以让我的
@Formula
和enum getter在Hibernate 4.2.8.Final上工作吗?

这是Hibernate中的错误代码:

private void createParameterImpl() {
  try {
    String[] columnsNames = new String[columns.size()];
    for ( int i = 0; i < columns.size(); i++ ) {
      columnsNames[i] = ( (Column) columns.get( i ) ).getName(); // <- This cast fails
    }

    ...
private void createParameterImpl(){
试一试{
String[]columnsNames=新字符串[columns.size()];
对于(int i=0;i