Ошибка отношение не существует позиция 15

package com.force.samples.entity;

import java.sql.*;


public class RetrieveData {

    public static void main(String args[]) {
        Connection conn = null;
        PreparedStatement prsment = null;
        ResultSet res = null;

        try {
            String usname = "devdbuser";
            String usPassword = "postgres";
            String host = "jdbc:postgresql://localhost:5432/devdb";
            String drayver = "org.postgresql.Driver";
            Class.forName(drayver);
            conn = DriverManager.getConnection(host, usname, usPassword);
            prsment = conn.prepareStatement("SELECT * FROM Users");
            res  = prsment.executeQuery();
            while (res.next()){
                System.out.print(res.getString(2) + "  ");
                System.out.print(res.getString(3) + "  ");
                System.out.print(res.getString(4) + "  ");
                System.out.print(res.getString(5) + "  ");
                System.out.print(res.getString(6) + "  ");
                System.out.print(res.getInt(7));

            }

           /* while (res.next()){
                int userID = res.getInt("userId");
                String userN = res.getString("userName");
                String userF = res.getString("userFam");
                String userLog = res.getString("userLogin");
                String userPsw = res.getString("userPass");
                String userPos = res.getString("userEmail");
                String userEm = res.getString("userEmail");
                int userVozrast = res.getInt("userAge");
                System.out.println(userID + " " + userN + " "+ userF + " " + userLog + " " + userPsw + " " + userPos + " " + userEm + " " + userVozrast);

            }*/

        } catch (Exception n) {
            System.out.println("Другая ошибка, проверьте свой код");
        }

        catch (ClassNotFoundException e) {
            System.out.println("Проверьте драйвера, правильно ли указали ");
        } catch (SQLException e) {
            System.out.println("Не удалось подключение к БД");
        }
        finally{ try{
            if (res!=null){
                res.close();
            }
            if (prsment!=null){
                prsment.close();
            }
            if (conn!=null){
                conn.close();
            }

        } catch (SQLException e) {
            System.out.println("Razyedinenie ne udalos, ili Oshibka pri SQL zaprosa");
        }
        }
    }
}

Чтобы проверить удалось ли подключение к БД я пробовал так и выводе получил ошибку что «Не удалось подключение к БД»

Вот мой stacktrace :

org.postgresql.util.PSQLException: ОШИБКА: отношение "users" не существует
  Позиция: 15
    at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2157)
    at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1886)
    at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:255)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:559)
    at org.postgresql.jdbc2.AнbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:417)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:302)
    at com.force.samples.entity.LGMAnaliz.main(LGMAnaliz.java:26)
    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 com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)

enzo's user avatar

enzo

4,0691 золотой знак9 серебряных знаков22 бронзовых знака

задан 1 апр 2016 в 14:54

Талъат's user avatar

7

Попробуйте указать имя схемы в строке JDBC-коннекта:

jdbc:postgresql://localhost:5432/devdb?currentSchema=mySchema

где mySchema замените на имя схемы, в которой находится таблица users.
Ключевое слово currentSchema следует использовать в версиях Postgresql начиная с версии 9.4, а для более ранних версий применяйте searchpath:

jdbc:postgresql://localhost:5432/devdb?searchpath=mySchema

ответ дан 4 апр 2016 в 4:20

bobzer's user avatar

bobzerbobzer

2,2377 серебряных знаков8 бронзовых знаков

1

I am getting the follow error when trying to execute a select * from tablename statement in postgresql. If I execute the same comment from a db GUI client (dbVisualizer), I am able to execute it succesfully. I am using eclipse, java 8 and postgresql 10.

ERROR: relation "tablename" does not exist
  Position: 15
  • java
  • postgresql

Vao Tsun's user avatar

Vao Tsun

46.7k12 gold badges98 silver badges131 bronze badges

asked Nov 10, 2017 at 3:52

JuniorStack2's user avatar

6

  • Is tablename really the table name? I’d say you’re probably using mixed case and quoting in one place but not another, or you’re connected to a different database

    Nov 10, 2017 at 3:56

  • what you mean you try to execute it in postgresql?..

    Nov 10, 2017 at 8:37

  • tablename is just a fake name a posted randomly on the question. I already validated the mixed case and quoting option and got no success result.

    Nov 13, 2017 at 2:58

  • I mean I run the query against postgres db

    Nov 13, 2017 at 2:59

  • One additional consideration is that I am using a MAC (macOS)

    Nov 13, 2017 at 3:09

Load 7 more related questions

Show fewer related questions

#postgresql #spring-boot #hibernate #hibernate-mapping #sql-view

Вопрос:

Я использую представление в своем классе сущностей. Хотя сопоставления столбцов представления точно такие же, как в классе сущностей, я получаю исключение «ОШИБКА: отношение «location_view» не существует- Позиция: 15 — базовое исключение-исключение SQLGrammarException не удалось извлечь набор результатов в org.springframework.orm.jpa.vendor.Исключение HibernateJpaDialect.convertHibernateAccessException(HibernateJpaDialect.java:261)»

Когда я заменяю представление базовым SQL-запросом, оно работает в SpringBoot. Не могли бы вы, пожалуйста, сообщить мне, где я ошибаюсь?

 @Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@Data
@ToString
@Entity
@Table(name = "location_view")
public class Location{
    @Id
    @Column(name = "id")
    long id;
  
    @Column(name = "name")
    String name;

    @Column(name = "total")
    long total;

    @Column(name = "created_by")
    long createdBy;

    @Column(name = "created_on")
    Timestamp createdOn;
}

public interface LocationDAO extends JpaRepository<Location, Long> {
    @Query(value = "select * from location_view", nativeQuery = true)
    List<Location> getLocations();
}
 

В моем контроллере я вызываю LocationDAO.getLocations();

Ответ №1:

Возможно, таблица/представление находится в другой схеме? Или, может быть, у пользователя для подключения JDBC нет разрешения на чтение из этой таблицы/представления?

Я выполняю пакетное обновление hibernate jpa и даю мне следующую ошибку

2015-04-21 15:53:51,907 WARN  [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] (Thread-283 (HornetQ-client-global-threads-462057890)) SQL Error: 0, SQLState: 42P01
2015-04-21 15:53:51,908 ERROR [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] (Thread-283 (HornetQ-client-global-threads-462057890)) ERROR: relation "my_seq_gen" does not exist

Я использую базу данных postgres, и мой идентификатор сгенерирован автоматически

  @Id
@SequenceGenerator(name="seq-gen",sequenceName="MY_SEQ_GEN"initialValue=205, allocationSize=12)
@GeneratedValue(strategy= GenerationType.SEQUENCE, generator="seq-gen")
@Column(name=""ID"",unique=true,nullable=false)
private int id;

Это мой фрагмент кода вставки пакета

getEm().getTransaction().begin();
System.out.println("transaction started--------------");
try {   
    for (Receipt ReceiptEntity : arrReceiptEntity) {
            getEm().persist(ReceiptEntity);
    }
    getEm().getTransaction().commit();
    System.out.println("commited");
} catch (Exception exception) {
    System.out.println("error----------------------------------------------------------------------");
    if(getEm().getTransaction().isActive())
        getEm().getTransaction().rollback();
    LOG.error(exception);
} finally {
    getEm().flush();
    getEm().clear();
    getEm().close();
}

Я добавил следующее свойство в persistence.xml

         <property name="hibernate.id.new_generator_mappings" value="true"/>

Пожалуйста, предложите, что я делаю неправильно.

В чем ошибка протсо хочу вывести содежимое?

psycopg2.errors.UndefinedTable: ОШИБКА: отношение «orders» не существует
LINE 1: SELECT * FROM Orders WHERE id = 1
таблица Orders есть
вот код хочу просто вывести соержимое

import psycopg2

con = psycopg2.connect(
        host='localhost',
        database='Drive_in',
        user='postgres',
        password='42661902',
        port=5432
)
cur = con.cursor()

cur.execute("SELECT * FROM Orders WHERE id = 1")

rows = cur.fetchall()
for i in rows:
    print(f"id{i[0]}name{i[1]}")
cur.close()
con.close()


  • Вопрос задан

    более двух лет назад

  • 2490 просмотров

Пригласить эксперта

ОШИБКА: отношение «orders» не существует
LINE 1: SELECT * FROM Orders WHERE id = 1
таблица Orders есть

Так есть у вас какая таблица? Orders или orders? Это две разные таблицы. Таблицы orders у вас нет и вы пытаетесь обращаться именно к ней. Если вы думаете, что так вы будете обращаться к таблице Orders — прочитайте мануал, это не так.


  • Показать ещё
    Загружается…

14 июн. 2023, в 01:02

5000 руб./за проект

13 июн. 2023, в 23:37

1000 руб./в час

13 июн. 2023, в 23:22

15000 руб./за проект

Минуточку внимания

Понравилась статья? Поделить с друзьями:
  • Ошибка отношение не существует postgresql hibernate
  • Ошибка отправки налоговой декларации в личном кабинете
  • Ошибка отправки на сервер фсс
  • Ошибка отправки на номер 900 почему
  • Ошибка отправки на контроль в фо в ацк госзаказ