GVKun编程网logo

本机SQL抛出无效的列名异常(sql 抛出异常)

7

在本文中,我们将给您介绍关于本机SQL抛出无效的列名异常的详细内容,并且为您解答sql抛出异常的相关问题,此外,我们还将为您提供关于asp.net-mvc–实体框架4.3无效的列名称“CreatedO

在本文中,我们将给您介绍关于本机SQL抛出无效的列名异常的详细内容,并且为您解答sql 抛出异常的相关问题,此外,我们还将为您提供关于asp.net-mvc – 实体框架4.3 无效的列名称“CreatedOn”、BulkOperations upsert抛出无效的BSON字段名称、c# – 无法分配新套接字,抛出无效参数异常、C++ 匿名异常:解析无名异常的生成和处理的知识。

本文目录一览:

本机SQL抛出无效的列名异常(sql 抛出异常)

本机SQL抛出无效的列名异常(sql 抛出异常)

我正在为我的应用程序使用Hibernate 3.2.5。

我有一张Dept桌子和一张Employees桌子。

部门java

private int deptId;
private String deptName;
private Map empMap = new HashMap();
//Getters and Setters

员工.java

private int empId;
private String empName;
private int deptId;
private int age;
private String sex;
private Dept dept;

HBM映射文件

<class name="com.jdbc.Dept" table="dept">
  <id name="deptId" type="integer" column="DEPT_ID">
      <generator></generator>
  </id>  
  <property name="deptName">
      <column name="DEPT_NAME"></column>
  </property>    
  <map name="empMap" inverse="false" cascade="all" lazy="true">
      <key column="DEPT_ID"></key>
      <map-key formula="EMP_ID" type="integer"></map-key>
      <one-to-many/>
  </map>

以下是本机SQL的代码:

SQLQuery query = session.createSQLQuery("Select d.DEPT_ID,e.EMP_NAME from Dept d,Emp e where d.DEPT_ID = e.DEPT_ID")
                .addEntity(Dept.class);
List<Dept> departments = query.list();
        for(Dept depart :departments)
            System.out.println(depart.getDeptName());

我得到了例外:

org.hibernate.exception.GenericJDBCException: could not execute query
at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.loader.Loader.doList(Loader.java:2223)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104)
at org.hibernate.loader.Loader.list(Loader.java:2099)
at org.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:289)
at org.hibernate.impl.SessionImpl.listCustomQuery(SessionImpl.java:1695)
at org.hibernate.impl.AbstractSessionImpl.list(AbstractSessionImpl.java:142)
at org.hibernate.impl.SQLQueryImpl.list(SQLQueryImpl.java:152)
at com.jdbc.HibernateStartup.main(HibernateStartup.java:75)
Caused by: java.sql.SQLException: Invalid column name
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:111)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:145)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:207)
at oracle.jdbc.driver.OracleStatement.getColumnIndex(OracleStatement.java:3295)
at oracle.jdbc.driver.OracleResultSetImpl.findColumn(OracleResultSetImpl.java:1913)
at oracle.jdbc.driver.OracleResultSet.getString(OracleResultSet.java:1514)
at org.hibernate.type.StringType.get(StringType.java:18)
at org.hibernate.type.NullableType.nullSafeGet(NullableType.java:163)
at org.hibernate.type.NullableType.nullSafeGet(NullableType.java:154)
at org.hibernate.type.AbstractType.hydrate(AbstractType.java:81)
at org.hibernate.persister.entity.AbstractEntityPersister.hydrate(AbstractEntityPersister.java:2096)
at org.hibernate.loader.Loader.loadFromResultSet(Loader.java:1380)
at org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1308)
at org.hibernate.loader.Loader.getRow(Loader.java:1206)
at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:580)
at org.hibernate.loader.Loader.doQuery(Loader.java:701)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
at org.hibernate.loader.Loader.doList(Loader.java:2220)
... 7 more

当我直接在数据库中运行查询时,我会得到正确的输出,但是在hibernate状态下,它给出的是Invalid COlumn name。我已经确认列名仅是正确的。

请让我知道如何解决此问题。

asp.net-mvc – 实体框架4.3 无效的列名称“CreatedOn”

asp.net-mvc – 实体框架4.3 无效的列名称“CreatedOn”

我正在开发使用VS 2010和EF 4.3的ASP.NET MVC 4应用程序。它从外部数据库检索一些数据,并且都按预期工作,直到我试图重新编译一天。汇编之后,我收到以下EF错误:

Invalid column name ‘CreatedOn’.

没有DB或代码更改 – 我只是添加了一些缩进的可读性。 TFS以前的应用程序版本也抛出相同的异常。

我的实体中没有CreatedOn属性,在数据库中没有这样的字段,我不需要它,并且不希望它在任何情况下。

应该做什么来避免这个例外?

这是我用于访问数据的自定义数据库上下文:

public class MyContext<T> : DbContext where T : class,IDataEntity
{
   public MyContext(string connectionKey)
        : base("name=" + connectionKey)
    {
        Configuration.AutoDetectChangesEnabled = false;            
    }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Label>().Property(item => item.Id).HasColumnName("LabelId");
        modelBuilder.Entity<Label>().Ignore(item => item.ChangedBy);
    }
}

这是Label类

public class BaseEntity : IDataEntity 
{ 
    public int Id { get; set; } 
    public string Name { get; set; } 
    public string ChangedBy { get; set; } 
} 

public class Label : BaseEntity 
{ 
}

解决方法

在我的情况下,这是MiniProfiler。我使用EF 5.0,它使用EF 4.x.禁用分析器后,异常不再被抛出

BulkOperations upsert抛出无效的BSON字段名称

BulkOperations upsert抛出无效的BSON字段名称

在查看了库的源代码和测试之后,我设法解决了我的问题。 BulkOperationsIntegrationTest

public void upsertAll(final List<StringEntry> strings) {
    FindAndReplaceOptions options = FindAndReplaceOptions.options();
    BulkOperations bulkOps = mongoTemplate.bulkOps(BulkOperations.BulkMode.UNORDERED,StringEntry.class,DOCUMENT);
    List<Pair<Query,Update>> operations = new ArrayList<>();
    for(StringEntry string: strings) {
        Query query = new Query();
        query.addCriteria(Criteria.where("msgid").is(string.getMsgId()));  
        Document doc = new Document();
        mongoTemplate.getConverter().write(string,doc);
        bulkOps = bulkOps.replaceOne(query,doc,options.upsert()); 
    }
    bulkOps.execute();
}

似乎upsert函数实际上并未按预期工作。将其替换为replaceOne可行。

c# – 无法分配新套接字,抛出无效参数异常

c# – 无法分配新套接字,抛出无效参数异常

我创建了一个新项目,单行代码是新套接字的分配:

Socket s = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);

它引发了一个例外:

An unhandled exception of type system.net.sockets.socket exception
occurred in System32.DLL

Additional information: An invalid argument was supplied

它还会写出这些代码:0x80004005,ErrorCode:10022

解决方法

我希望我的迟到答案对于有同样问题的其他人仍然有用.

我遇到了几个网络/套接字示例和每次搜索(参数组合不匹配?/断开而不是关闭/可选设置以重用地址或套接字)的相同问题没有解决它.此“无效参数”错误消息具有误导性.现在,我想出来了:

最有可能的是,您还在Visual Studio或Executable(exe)中直接在网络卷或共享上运行代码.即使以管理员身份执行也无效.

当我将可执行文件/代码项目复制到我的PC上的本地卷时,所有套接字程序都运行良好(即使没有管理员权限).

可能更改用户帐户控制(UAC)权限或公司域组策略可以避免此问题.

问候缩略词.

C++ 匿名异常:解析无名异常的生成和处理

C++ 匿名异常:解析无名异常的生成和处理

c++++ 中,匿名异常是一种无指定类型的异常。生成匿名异常的方法包括抛出 std::exception 对象或使用 throw() 关键字。处理匿名异常时,可以使用 try-catch 块捕获异常,并在 catch (...) 块中访问异常的 what() 成员函数获取附加信息。最佳实践建议避免抛出匿名异常,并在处理时打印异常消息以方便调试,并针对可避免的错误使用命名的异常类型。

C++ 匿名异常:解析无名异常的生成和处理

C++ 匿名异常:解析无名异常的生成和处理

在 C++ 中,匿名异常是一种不指定异常类型的异常,它通常由标准库抛出。这篇文章将深入探讨匿名异常的生成和处理,并通过实战案例进行详细说明。

生成匿名异常

立即学习“C++免费学习笔记(深入)”;

匿名异常可以通过多种方式生成,最常见的是通过抛出 std::exception 对象:

throw std::exception();  // 生成一个匿名异常
登录后复制

还可以通过使用 throw() 关键字来生成匿名异常:

throw();  // 生成一个匿名异常
登录后复制

处理匿名异常

处理匿名异常与处理已命名异常类似。您可以使用 try-catch 块来捕获匿名异常:

try {
  // 可能抛出匿名异常的代码
} catch (...) {
  // 处理匿名异常
}
登录后复制

在 catch (...) 块中,可以访问异常的 what() 成员函数以获取有关异常的附加信息:

try {
  // 可能抛出匿名异常的代码
} catch (...) {
  std::cout << "匿名异常:" << e.what() << std::endl;
}
登录后复制

实战案例

考虑以下代码片段,它使用 std::vector::at() 方法访问不存在的元素,该方法可能会抛出一个 std::out_of_range 异常作为匿名异常:

std::vector<int> vec = {1, 2, 3};
try {
  int value = vec.at(4);  // 可能抛出一个匿名异常
  std::cout << "值:" << value << std::endl;
} catch (...) {
  std::cout << "匿名异常:索引超出范围" << std::endl;
}
登录后复制

运行此代码将输出以下内容:

匿名异常:索引超出范围
登录后复制

最佳实践

  • 尽量不要抛出匿名异常,因为它们可能会 затруднить 调试。
  • 在处理匿名异常时,应始终打印异常的 what() 消息,以便 进行调试。
  • 对于可避免的错误,应使用命名的异常类型来提供更有意义的信息。

以上就是C++ 匿名异常:解析无名异常的生成和处理的详细内容,更多请关注php中文网其它相关文章!

关于本机SQL抛出无效的列名异常sql 抛出异常的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于asp.net-mvc – 实体框架4.3 无效的列名称“CreatedOn”、BulkOperations upsert抛出无效的BSON字段名称、c# – 无法分配新套接字,抛出无效参数异常、C++ 匿名异常:解析无名异常的生成和处理的相关信息,请在本站寻找。

本文标签: