您好我已经在eclipselink网站上提交了这个错误,但到目前为止还没有回复,我被卡住了。我希望有人知道解决方法或其他什么。 我有一个与其他表无关的单个实体。该实体正在映射oracle数据库中的现有表。
@Entity
@Table(name = "FIVERX_MUSTER16_PRUEFUNG")
@Customizer(XMLTypeAttributeCustomizer.class)
public class MYDATATABLE {
...
@Lob
@Column(name = "XML", columnDefinition = "XMLTYPE")
private String xmlDocument;
...
}
我尝试了很多东西,但每次尝试在此表上执行选择时,eclipselink都会抛出NullPointerException
ERROR - EjbTransactionUtil.handleSystemException: null
java.lang.NullPointerException
at oracle.jdbc.driver.NamedTypeAccessor.getOracleObject(NamedTypeAccessor.java:302)
at oracle.jdbc.driver.NamedTypeAccessor.getObject(NamedTypeAccessor.java:164)
at oracle.jdbc.driver.NamedTypeAccessor.getObject(NamedTypeAccessor.java:121)
at oracle.jdbc.driver.OracleResultSetImpl.getObject(OracleResultSetImpl.java:1108)
at org.eclipse.persistence.platform.database.oracle.Oracle9Platform.getObjectFromResultSet(Oracle9Platform.java:193)
at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.getObject(DatabaseAccessor.java:1302)
at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.fetchRow(DatabaseAccessor.java:1077)
at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.processResultSet(DatabaseAccessor.java:744)
at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java:657)
at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeCall(DatabaseAccessor.java:560)
如果我删除xmltype列,一切都按预期工作。如果我再次添加列 - >空指针...
这是我的XmlMapper,所以你可以看到我完全按照DirectXmlTypeMapping的教程告诉
import org.eclipse.persistence.config.DescriptorCustomizer;
import org.eclipse.persistence.descriptors.ClassDescriptor;
import org.eclipse.persistence.mappings.xdb.DirectToXMLTypeMapping;
public class XMLTypeAttributeCustomizer implements DescriptorCustomizer {
@Override
public void customize (ClassDescriptor descriptor) throws Exception {
// Remove JPA default Basic mapping
descriptor.removeMappingForAttributeName("xmlDocument");
final DirectToXMLTypeMapping mapping = new DirectToXMLTypeMapping();
mapping.setAttributeName("xmlDocument");
mapping.setFieldName("XML");
mapping.getField().setColumnDefinition("XMLTYPE");
descriptor.addMapping(mapping);
}
}
有没有解决方法?我必须使用这个表,它不是唯一一个包含XMLTYPE列的表......我绝对没有想法......
答案 0 :(得分:0)
问题是oracle jdbc驱动程序中的一个错误。问题已在版本11.2.0.4中修复