" />

欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java jpa查詢沒有id表的方法

 更新時間:2023年09月05日 11:18:13   作者:追逐夢想永不停  
本文主要介紹了java jpa查詢沒有id表的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

一、前言

jpa中,如果想查詢數據庫,必須有一個@Entity實體類,這個類的內容要與數據庫表的列一一對應;
并且這個類中,必須有一個Long id字段,對應數據庫表中的id列。

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

但是,本人的項目里有個數據庫表,確實沒有id這一列,有的是class_id這一列,名字不一樣。

CREATE TABLE `classinfo` (
  `class_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
  `class_name` varchar(200) NOT NULL DEFAULT '' COMMENT 'name',
  PRIMARY KEY (`class_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

這種情況,使用jpa查詢就會報錯,找不到id列(確實沒有)

即使改@Entity代碼,改為:

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long classId;

這樣也是不行的,查詢也會報錯(名字必須叫id)

表結構確實不能修改,查詢又必須使用jpa,但是沒有id列又不行……

二、解決方法

1.可以先建一個空表,只有一個id列,例如:

CREATE TABLE `simpletable` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

2.然后寫一個@Entity實體類,與空表simpletable對應,只有一個id列,例如:

import javax.persistence.*;
import java.io.Serializable;
import java.util.Objects;
/**
 * A Simpletable.
 */
@Entity
@Table(name = "simpletable")
public class Simpletable implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    // jhipster-needle-entity-add-field - JHipster will add fields here, do not remove
    public Long getId() {
        return id;
    }
    public void setId(Long id) {
        this.id = id;
    }
    @Override
    public boolean equals(Object o) {
        if (this == o) {
            return true;
        }
        if (o == null || getClass() != o.getClass()) {
            return false;
        }
        Simpletable simpletable = (Simpletable) o;
        if (simpletable.getId() == null || getId() == null) {
            return false;
        }
        return Objects.equals(getId(), simpletable.getId());
    }
    @Override
    public int hashCode() {
        return Objects.hashCode(getId());
    }
    @Override
    public String toString() {
        return "Simpletable{" +
            "id=" + getId() +
            "}";
    }
}

3.然后寫一個repository類,放入這個實體類,然后查詢其它表,如下:

import xxx.Simpletable;
import org.springframework.data.jpa.repository.*;
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Map;
/**
 * Spring Data  repository for the Classinfo entity.
 */
@SuppressWarnings("unused")
@Repository
public interface ClassinfoRepository extends CrudRepository<Simpletable, Long> {
    @Query(value = "select * " +
            " from classinfo  " +
            "where class_id = ?1 " +
            "order by  class_id DESC ", nativeQuery = true)
    List<Map<String,Object>> findByClassId(String id);
}

(1)這段代碼里,主要是在extends CrudRepository<Simpletable, Long>這里放入了Simpletable(必須放一個與表對應的實體類,否則執(zhí)行查詢還是會報錯)

(2)然后,在這個類中去查詢沒有id列的表classinfo

(3)由于classinfo表沒有實體類(沒有id列,無法寫實體類),所以只能返回 List<Map<String,Object>>類型,后續(xù)需要自己拆分獲取字段。

(4)這樣,就實現了jpa查詢沒有id的表的方法。

三、備注

1.注意返回類型不能寫成List<HashMap<String,Object>>,會無法正常獲取key-value
2.如果使用jpa,最好是建表的時候就建一個id列作為自增主鍵。

到此這篇關于java jpa查詢沒有id表的方法的文章就介紹到這了,更多相關java jpa查詢沒有id表內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 刪除JAVA集合中元素的實現代碼

    刪除JAVA集合中元素的實現代碼

    有時候我們要刪除集合中的某些元素,那么就可以參考下面的代碼
    2013-07-07
  • Java中注解@JsonFormat的用法詳解

    Java中注解@JsonFormat的用法詳解

    這篇文章主要給大家介紹了關于Java中注解@JsonFormat用法的相關資料,以及分享了@JsonFormat 將枚舉序列化為對象的方法,文中給出了詳細的代碼實例,需要的朋友可以參考下
    2023-01-01
  • 基于Java?SpringBoot的前后端分離信息管理系統(tǒng)的設計和實現

    基于Java?SpringBoot的前后端分離信息管理系統(tǒng)的設計和實現

    當今社會,人才的流動速度大大增加,因此也對黨建工作的管理層面工作帶來了空前且復雜的挑戰(zhàn),從而使得如何高效的開展管理黨建工作成為了亟待解決的問題。本文將介紹通過Java?SpringBoot實現前后端分離信息管理系統(tǒng),感興趣的同學可以了解一下
    2021-11-11
  • Java在控制臺輸出帶顏色字符的2種方式詳解

    Java在控制臺輸出帶顏色字符的2種方式詳解

    這篇文章主要給大家介紹了關于Java在控制臺輸出帶顏色字符的2種方式,文中通過實例代碼以及圖文介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2022-01-01
  • Servlet獲取AJAX POST請求中參數以form data和request payload形式傳輸的方法

    Servlet獲取AJAX POST請求中參數以form data和request payload形式傳輸的方法

    這篇文章主要介紹了Servlet獲取AJAX POST請求中參數以form data和request payload形式傳輸的方法,結合實例形式詳細分析了post數據發(fā)送及獲取請求數據的原理與相關操作注意事項,需要的朋友可以參考下
    2017-11-11
  • spring cloud consul使用ip注冊服務的方法示例

    spring cloud consul使用ip注冊服務的方法示例

    這篇文章主要介紹了spring cloud consul使用ip注冊服務的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-03-03
  • JAVA用for循環(huán)打印空心菱形

    JAVA用for循環(huán)打印空心菱形

    大家好,本篇文章主要講的是JAVA用for循環(huán)打印空心菱形,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • Java?Date(日期)對象進行格式化的思路詳解

    Java?Date(日期)對象進行格式化的思路詳解

    Date類是經常會使用到的一個用來處理日期、時間的一個類。Date類是在java.util包下的Date類,這篇文章主要介紹了Java?Date(日期)對象如何進行格式化呢,需要的朋友可以參考下
    2022-09-09
  • 基于java SSM springboot實現抗疫物質信息管理系統(tǒng)

    基于java SSM springboot實現抗疫物質信息管理系統(tǒng)

    這篇文章主要介紹了基于JAVA SSM springboot實現的抗疫物質信息管理系統(tǒng),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-08-08
  • JDK反序列化時修改類的全限定性名解析

    JDK反序列化時修改類的全限定性名解析

    這篇文章主要介紹了JDK反序列化時修改類的全限定性名解析,具有一定借鑒價值,需要的朋友可以參考下。
    2017-12-12

最新評論