第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何讓EntityManager執(zhí)行native sql

如何讓EntityManager執(zhí)行native sql

慕尼黑5688855 2023-03-31 14:52:04
首先,為您可能犯的語法錯誤道歉。我的英文不是很好。我正在創(chuàng)建一個表構(gòu)造函數(shù)來創(chuàng)建動態(tài)表。我的問題是 EntityManager 為空,我不知道為什么。我在讀到您可以創(chuàng)建一個帶有entityManagerFactory的 entityManager并傳遞我的 application.properties 中已有的參數(shù)?;蛘呶铱梢宰⑷?PersistenceContext 但是當我嘗試執(zhí)行一個 sql 語句時,EntityManager 為空。我該如何解決?編輯:我做了你所說的一切,接下來展示:LOGGER.DEBUG:CREATE TABLE countries( table_id SERIAL, tsunami int8, mag float8, felt numeric, id varchar(255), time bigint,  primary key (table_id));ERROR:java.lang.NullPointerException: null    at com.project.maps.util.TableGeoJsonGenerator.executeSQL...抱歉,我編輯并添加編輯后的代碼以對所有代碼和版本進行排序:這是我的代碼:@Servicepublic class TableGeoJsonGenerator {    private static final Logger LOGGER = LogManager.getLogger(SchemeService.class);    @Autowired    private EntityManager em;    public TableGeoJsonGenerator() {        super();    }    public void initTable(String name, List<String> columns, List<String> typeColumns, ArrayList<Object> rows) {        createTableWithColumns(name, columns, typeColumns);        addRowsInTable(rows);           }    private void createTableWithColumns(String name, List<String> columns, List<String> typeColumns) {        String SQL = "CREATE TABLE " + name + "( table_id int8 NOT NULL AUTO_INCREMENT, " + generateSqlColumns(columns, typeColumns) +" primary key (table_id));";        LOGGER.debug(SQL);        executeSQL(SQL);    }    private void addRowsInTable(ArrayList<Object> rows) {    }    public String generateSqlColumns(List<String> columns, List<String> typeColumns) {        String DINAMIC_COLUMNS = "";        for (int i=0; i<columns.size(); i++) {            DINAMIC_COLUMNS += columns.get(i).toString() + " " + getPostgresqlValue(typeColumns.get(i).toString()) + ", ";        }        return DINAMIC_COLUMNS;    }
查看完整描述

2 回答

?
慕妹3146593

TA貢獻1820條經(jīng)驗 獲得超9個贊

@UtilityClass

我猜這是你的問題。取自龍目島文檔。

實用程序類無法實例化。通過使用 @UtilityClass 標記您的類,lombok 將自動生成一個私有構(gòu)造函數(shù),該構(gòu)造函數(shù)會拋出異常,將您添加的任何顯式構(gòu)造函數(shù)標記為錯誤,并將該類標記為最終類。如果該類是內(nèi)部類,則該類也被標記為靜態(tài)。

我的猜測如下。Spring 只能將 bean 注入到 spring 管理的對象中。您的類TableGeoJsonGenerator不是托管 bean,因為 spring 無法實例化它。

您需要刪除@UtilityClass并添加一個托管 bean 注釋,例如@Service @Controller等等。

在 spring boot中定義 jpa 屬性時application.properties,將自動為您創(chuàng)建一個EntityManager已定義的屬性。

然后可以將其@Autowired放入任何spring managed bean. 您需要先管理您的班級。


查看完整回答
反對 回復(fù) 2023-03-31
?
PIPIONE

TA貢獻1829條經(jīng)驗 獲得超9個贊

你的方法 entityManagerFactory() 在哪里?

我認為: + 首先,創(chuàng)建 EntityManagerFactory

EntityManagerFactory entitymanagerfactory = Persistence.createEntityManagerFactory("your.package");

  • 然后,創(chuàng)建 entityManager :

    public static EntityManager getEntityManager() {   return entitymanagerfactory .createEntityManager(); }

然后 :

    ...

     EntityManager entityManager = getEntityManager();


     em.getTransaction().begin();

     ....


查看完整回答
反對 回復(fù) 2023-03-31
  • 2 回答
  • 0 關(guān)注
  • 177 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號