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

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

Spring - 如何將休眠數(shù)據(jù)保存到 SQL 服務器?

Spring - 如何將休眠數(shù)據(jù)保存到 SQL 服務器?

qq_笑_17 2022-01-12 16:40:45
我正在使用 Hibernate 開發(fā) Spring 應用程序。我想保存數(shù)據(jù),以便即使在啟動和停止服務器時它仍然存在。在嘗試將數(shù)據(jù)保存到 SQL 數(shù)據(jù)庫時,我遇到了大量異常,因此我剝離了所有內容并通過嘗試將 Person 的實例保存到 SQL 數(shù)據(jù)庫來組合一個簡單的、hello world 風格的示例。我已經(jīng)瀏覽了我能找到的每一個線程,但它們都與關系有關——這只是一個沒有關系的單一實體。任何建議都非常感謝!這是我保存條目的嘗試:Person person = new Person("Some Person");personRepository.save(person);SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();Session session = sessionFactory.openSession();session.beginTransaction();session.save(person);session.getTransaction().commit();例外:Caused by: org.hibernate.property.access.spi.PropertyAccessException:Error accessing field [private java.lang.String com.wdw.core.Person.name] by reflection for persistent property [com.wdw.core.Person#name] : com.wdw.core.Person@4a232870Caused by: java.lang.IllegalArgumentException: Can not set java.lang.String field com.wdw.core.Person.name to com.wdw.core.Person模型:@Entitypublic class Person {    @Id    @GeneratedValue(strategy = GenerationType.IDENTITY)    private long personId;    private String name;    public Person() {    }    public Person(String name) {        this.name = name;    }    // getters and setters}存儲庫:public interface PersonRepository  extends CrudRepository<Person, Long> {}休眠.cfg.xml:<?xml version="1.0" encoding="utf-8"?><!DOCTYPE hibernate-configuration PUBLIC"-//Hibernate/Hibernate Configuration DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"><hibernate-configuration>    <session-factory>        <property name="hibernate.bytecode.use_reflection_optimizer">true</property>        <property name="hibernate.connection.driver_class">com.mysql.cj.jdbc.Driver</property>        <property name="hibernate.connection.password">root</property>        <property name="hibernate.connection.url">jdbc:mysql://localhost:8889/the_sideline</property>        <property name="hibernate.connection.username">root</property>    </session-factory></hibernate-configuration>
查看完整描述

2 回答

?
森林海

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

@Entity

@Table(name="Person") 公共類人 {


@Id

@GeneratedValue(strategy = GenerationType.IDENTITY)

@Column(name="person_id")

private long personId;


@Column(name="name")

private String name;


public Person() {

}


public Person(String name) {

    this.name = name;

}


// getters and setters

}


您需要向該實體添加更多注釋,如上述代碼中所述。1)@Column 以便hibernate了解哪個列映射到實體中的哪個屬性(如果列名和屬性名相同,則不需要這樣做)。表列名如上所述需要提及。


查看完整回答
反對 回復 2022-01-12
?
慕斯709654

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

我在這里要做的就是在啟動和停止服務器之間保留數(shù)據(jù),并能夠通過 SQL 數(shù)據(jù)庫訪問數(shù)據(jù)。我通過指定您希望 Hibernate 使用的數(shù)據(jù)庫,在沒有使用@TransactionalSession接口的情況下解決了這個問題。在這里找到- 感謝@Master Slave。

腳步:

  1. 啟動我的 SQL 服務器并創(chuàng)建數(shù)據(jù)庫

  2. 添加一個application.properties文件來配置 Spring 以使用該數(shù)據(jù)庫

  3. 第一次運行應用程序時,設置spring.jpa.hibernate.ddl-auto =create. 下一次,將其設置為update. 這將在會話中保留該數(shù)據(jù)。

application.properties: -僅在第一次運行時使用:

spring.datasource.url=jdbc:mysql://localhost:8889/my_db

spring.datasource.username=root

spring.datasource.password=root

spring.datasource.driverClassName=com.mysql.jdbc.Driver

spring.jpa.show-sql=true

spring.jpa.hibernate.ddl-auto=create

之后bootRun,my_db將填充數(shù)據(jù)。停止您的 Spring 服務器并重新啟動它,但這次spring.jpa.hibernate.ddl-auto=update在您的application.properties.


希望這可以幫助遇到類似問題的其他人。


查看完整回答
反對 回復 2022-01-12
  • 2 回答
  • 0 關注
  • 159 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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