- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经阅读了 this search 中的许多主题所以我真的诚实地尝试了三天。此时,我有一个 TaskListTopComponent (Window) 和一个名为 Todo.java 的实体类。在 Todo 实体类中,我有一列 TDDETAILS,它是 DBF 中的备注字段。我尝试使用以下代码从中获取数据:
@Column(name = "TDDETAILS")
@Lob
private String details;
public String getDetails() {
return details;
}
public void setDetails(String details) {
this.details = details;
}
如果我删除上面的代码,我的应用程序将完美运行,并且可以检索、修改、添加和删除所有其他 10 多个列。
但是,我需要 TDDETAILS 字段,并且当我使用上面的代码时出现以下错误:
Internal Exception: java.sql.SQLException: [Microsoft][ODBC Visual FoxPro Driver]Feature is not available.
Error Code: 0
Call: SELECT TDTDKEY, TDBILLABLE, TDEMAILED, TDFLATRATE, TDADD_DATE, TDADD_TERM, TDADD_TIME, TDADD_USER, TDCHG_DATE, TDCHG_NUMB, TDCHG_TERM, TDCHG_TIME, TDCHG_USER, TDDETAILS, TDDATEDONE, TDFOLLOWUP, TDINTERNAL, TDPRIVATE, TDREQUIRED, TDSRED, TDTAKEN, TDDESCRIP, TDPRIORITY, TDCMKEY, TDCNKEY, TDJTKEY, TDPYKEY, TDURKEYAS, TDURKEYTB FROM TODO
Query: ReadAllQuery(name="Todo.findAll" referenceClass=Todo sql="SELECT TDTDKEY, TDBILLABLE, TDEMAILED, TDFLATRATE, TDADD_DATE, TDADD_TERM, TDADD_TIME, TDADD_USER, TDCHG_DATE, TDCHG_NUMB, TDCHG_TERM, TDCHG_TIME, TDCHG_USER, TDDETAILS, TDDATEDONE, TDFOLLOWUP, TDINTERNAL, TDPRIVATE, TDREQUIRED, TDSRED, TDTAKEN, TDDESCRIP, TDPRIORITY, TDCMKEY, TDCNKEY, TDJTKEY, TDPYKEY, TDURKEYAS, TDURKEYTB FROM TODO")
INFO [org.netbeans.core.windows.persistence]: [PersistenceManager.getTopComponentForID] Problem when deserializing TopComponent for tcID:'TaskListTopComponent'. Reason: Cannot create instance of com.waudware.viewer.TaskListTopComponent
我的 persistence.xml 如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="MogEntityLivedataPU" transaction-type="RESOURCE_LOCAL">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<class>entity.Todo</class>
<properties>
<property name="javax.persistence.jdbc.url" value="jdbc:odbc:MogDev_livedata_ODBC"/>
<property name="javax.persistence.jdbc.password" value=""/>
<property name="javax.persistence.jdbc.driver" value="sun.jdbc.odbc.JdbcOdbcDriver"/>
<property name="javax.persistence.jdbc.user" value=""/>
<property name="javax.persistence.jdbc.user" value=""/>
</properties>
</persistence-unit>
</persistence>
对于如何解决此问题,我们将不胜感激。谢谢!
编辑:
好吧,我尝试创建一个由 2 个文件组成的新项目 - 实体(我将其放入 jar 中)和一个主类:
todo.java
package entity;
import java.io.Serializable;
import javax.persistence.*;
import javax.xml.bind.annotation.XmlRootElement;
@Entity
@Table(name = "TODO")
@XmlRootElement
@NamedQueries({
@NamedQuery(name = "Todo.findAll", query = "SELECT c FROM Todo c")})
public class Todo implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name = "TDTDKEY")
private String id;
@Lob
@Column(name = "TDDETAILS")
private byte[] details;
public byte[] getDetails() {
return details;
}
public void setDetails(byte[] details) {
this.details = details;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
@Override
public int hashCode() {
int hash = 0;
hash += (id != null ? id.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof Todo)) {
return false;
}
Todo other = (Todo) object;
if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
return false;
}
return true;
}
@Override
public String toString() {
return "entity.Todo[ id=" + id + " ]";
}
}
RetrieveMemo.java
package retrievememo;
import entity.Todo;
import java.util.List;
import javax.persistence.Query;
import javax.persistence.EntityManager;
import javax.persistence.Persistence;
public class RetrieveMemo {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
EntityManager entityManager = Persistence.createEntityManagerFactory("MemoEntityPU").createEntityManager();
Query query = entityManager.createNamedQuery("Todo.findAll");
List<Todo> resultList = query.getResultList();
System.out.println("Memo1:>" + resultList.get(1).getDetails() + "<");
}
}
这是完整的堆栈跟踪:
[EL Info]: 2012-07-16 09:10:14.382--ServerSession(20248218)--EclipseLink, version: Eclipse Persistence Services - 2.3.0.v20110604-r9504
[EL Info]: 2012-07-16 09:10:14.491--Not able to detect platform for vendor name [Visual FoxPro]. Defaulting to [org.eclipse.persistence.platform.database.DatabasePlatform]. The database dialect used may not match with the database you are using. Please explicitly provide a platform using property eclipselink.platform.class.name.
[EL Info]: 2012-07-16 09:10:15.851--ServerSession(20248218)--file:/Y:/NetBeansProjects/MemoEntity/build/classes/_MemoEntityPU login successful
[EL Warning]: 2012-07-16 09:10:16.899--UnitOfWork(6597453)--Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.3.0.v20110604-r9504): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: java.sql.SQLException: [Microsoft][ODBC Visual FoxPro Driver]Feature is not available.
Error Code: 0
Call: SELECT TDTDKEY, TDDETAILS FROM TODO
Query: ReadAllQuery(name="Todo.findAll" referenceClass=Todo sql="SELECT TDTDKEY, TDDETAILS FROM TODO")
Exception in thread "main" Local Exception Stack:
Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.3.0.v20110604-r9504): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: java.sql.SQLException: [Microsoft][ODBC Visual FoxPro Driver]Feature is not available.
Error Code: 0
Call: SELECT TDTDKEY, TDDETAILS FROM TODO
Query: ReadAllQuery(name="Todo.findAll" referenceClass=Todo sql="SELECT TDTDKEY, TDDETAILS FROM TODO")
at org.eclipse.persistence.exceptions.DatabaseException.sqlException(DatabaseException.java:324)
at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.getObject(DatabaseAccessor.java:1237)
at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.fetchRow(DatabaseAccessor.java:999)
at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.processResultSet(DatabaseAccessor.java:723)
at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java:621)
at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeCall(DatabaseAccessor.java:535)
at org.eclipse.persistence.internal.sessions.AbstractSession.basicExecuteCall(AbstractSession.java:1702)
at org.eclipse.persistence.sessions.server.ServerSession.executeCall(ServerSession.java:566)
at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:207)
at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:193)
at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeSelectCall(DatasourceCallQueryMechanism.java:264)
at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.selectAllRows(DatasourceCallQueryMechanism.java:646)
at org.eclipse.persistence.internal.queries.ExpressionQueryMechanism.selectAllRowsFromTable(ExpressionQueryMechanism.java:2592)
at org.eclipse.persistence.internal.queries.ExpressionQueryMechanism.selectAllRows(ExpressionQueryMechanism.java:2551)
at org.eclipse.persistence.queries.ReadAllQuery.executeObjectLevelReadQuery(ReadAllQuery.java:418)
at org.eclipse.persistence.queries.ObjectLevelReadQuery.executeDatabaseQuery(ObjectLevelReadQuery.java:1097)
at org.eclipse.persistence.queries.DatabaseQuery.execute(DatabaseQuery.java:829)
at org.eclipse.persistence.queries.ObjectLevelReadQuery.execute(ObjectLevelReadQuery.java:1056)
at org.eclipse.persistence.queries.ReadAllQuery.execute(ReadAllQuery.java:390)
at org.eclipse.persistence.queries.ObjectLevelReadQuery.executeInUnitOfWork(ObjectLevelReadQuery.java:1144)
at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.internalExecuteQuery(UnitOfWorkImpl.java:2863)
at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1501)
at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1483)
at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1457)
at org.eclipse.persistence.internal.jpa.EJBQueryImpl.executeReadQuery(EJBQueryImpl.java:485)
at org.eclipse.persistence.internal.jpa.EJBQueryImpl.getResultList(EJBQueryImpl.java:742)
at retrievememo.RetrieveMemo.main(RetrieveMemo.java:26)
Caused by: java.sql.SQLException: [Microsoft][ODBC Visual FoxPro Driver]Feature is not available.
at sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.java:318)
at sun.jdbc.odbc.JdbcOdbcResultSet.getObject(JdbcOdbcResultSet.java:1678)
at org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.getObjectFromResultSet(DatabasePlatform.java:1216)
at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.getObject(DatabaseAccessor.java:1206)
... 25 more
Java Result: 1
BUILD SUCCESSFUL (total time: 11 seconds)
编辑2:如果我确实不使用实体,它似乎工作完美。我想我的问题是 - 如何让它与实体一起工作?问题一定出在 EclipseLink 上吗?
以下方法有效:
package retrievememo;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;
public class RetrieveMemo {
public static void main(String[] args) {
try {
// EntityManager entityManager = Persistence.createEntityManagerFactory("MemoEntityPU").createEntityManager();
// Query query = entityManager.createNamedQuery("Todo.findAll");
// List<Todo> resultList = query.getResultList();
// System.out.println("Memo1:>" + resultList.get(1).getDetails() + "<");
Connection conn = getConnection();
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery("SELECT TDDETAILS FROM todo");
while (rs.next())
{
System.out.println(rs.getString("TDDETAILS"));
}
st.close();
conn.close();
} catch (Exception ex) {
Logger.getLogger(RetrieveMemo.class.getName()).log(Level.SEVERE, null, ex);
}
}
private static Connection getConnection() throws Exception {
String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
String url = "jdbc:odbc:MogDev_livedata_ODBC";
String username = "";
String password = "";
Class.forName(driver);
return DriverManager.getConnection(url, username, password);
}
}
最佳答案
除了声明当类型为“备忘录”时驱动程序无法处理调用 getObject 之外,我不知道足够的信息来具体提供帮助,从而导致您看到的异常。您在其他地方发布了 create-tables 不起作用的信息 - 这可能是因为通用 DatabasePlatform 上使用的类型与 FoxPro 类型不匹配 - 您可能需要为 FoxPro 创建一个 DatabasePlatform 子类来处理使用“逻辑” boolean 值等类型,如果驱动程序上有不同的方法允许检索该值,则重写 getObjectFromResultSet 方法以读取“备忘录”类型。或者在下面使用驱动程序可以使用的不同类型。
关于java - 尝试访问备注字段时出错(EclipseLink、JdbcOdbc、Clob),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11456473/
SQLite、Content provider 和 Shared Preference 之间的所有已知区别。 但我想知道什么时候需要根据情况使用 SQLite 或 Content Provider 或
警告:我正在使用一个我无法完全控制的后端,所以我正在努力解决 Backbone 中的一些注意事项,这些注意事项可能在其他地方更好地解决......不幸的是,我别无选择,只能在这里处理它们! 所以,我的
我一整天都在挣扎。我的预输入搜索表达式与远程 json 数据完美配合。但是当我尝试使用相同的 json 数据作为预取数据时,建议为空。点击第一个标志后,我收到预定义消息“无法找到任何内容...”,结果
我正在制作一个模拟 NHL 选秀彩票的程序,其中屏幕右侧应该有一个 JTextField,并且在左侧绘制弹跳的选秀球。我创建了一个名为 Ball 的类,它实现了 Runnable,并在我的主 Draf
这个问题已经有答案了: How can I calculate a time span in Java and format the output? (18 个回答) 已关闭 9 年前。 这是我的代码
我有一个 ASP.NET Web API 应用程序在我的本地 IIS 实例上运行。 Web 应用程序配置有 CORS。我调用的 Web API 方法类似于: [POST("/API/{foo}/{ba
我将用户输入的时间和日期作为: DatePicker dp = (DatePicker) findViewById(R.id.datePicker); TimePicker tp = (TimePic
放宽“邻居”的标准是否足够,或者是否有其他标准行动可以采取? 最佳答案 如果所有相邻解决方案都是 Tabu,则听起来您的 Tabu 列表的大小太长或您的释放策略太严格。一个好的 Tabu 列表长度是
我正在阅读来自 cppreference 的代码示例: #include #include #include #include template void print_queue(T& q)
我快疯了,我试图理解工具提示的行为,但没有成功。 1. 第一个问题是当我尝试通过插件(按钮 1)在点击事件中使用它时 -> 如果您转到 Fiddle,您会在“内容”内看到该函数' 每次点击都会调用该属
我在功能组件中有以下代码: const [ folder, setFolder ] = useState([]); const folderData = useContext(FolderContex
我在使用预签名网址和 AFNetworking 3.0 从 S3 获取图像时遇到问题。我可以使用 NSMutableURLRequest 和 NSURLSession 获取图像,但是当我使用 AFHT
我正在使用 Oracle ojdbc 12 和 Java 8 处理 Oracle UCP 管理器的问题。当 UCP 池启动失败时,我希望关闭它创建的连接。 当池初始化期间遇到 ORA-02391:超过
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 9 年前。 Improve
引用这个plunker: https://plnkr.co/edit/GWsbdDWVvBYNMqyxzlLY?p=preview 我在 styles.css 文件和 src/app.ts 文件中指定
为什么我的条形这么细?我尝试将宽度设置为 1,它们变得非常厚。我不知道还能尝试什么。默认厚度为 0.8,这是应该的样子吗? import matplotlib.pyplot as plt import
当我编写时,查询按预期执行: SELECT id, day2.count - day1.count AS diff FROM day1 NATURAL JOIN day2; 但我真正想要的是右连接。当
我有以下时间数据: 0 08/01/16 13:07:46,335437 1 18/02/16 08:40:40,565575 2 14/01/16 22:2
一些背景知识 -我的 NodeJS 服务器在端口 3001 上运行,我的 React 应用程序在端口 3000 上运行。我在 React 应用程序 package.json 中设置了一个代理来代理对端
我面临着一个愚蠢的问题。我试图在我的 Angular 应用程序中延迟加载我的图像,我已经尝试过这个2: 但是他们都设置了 src attr 而不是 data-src,我在这里遗漏了什么吗?保留 d
我是一名优秀的程序员,十分优秀!