簡體   English   中英

數據無法持久保存到數據庫Spring Boot休眠中

[英]Data not persisting to Database Spring Boot hibernate

我正在嘗試更新一個名為User的實體,盡管成功地對用戶對象進行了更改,但是當我嘗試將用戶(通過update方法)保存到數據庫時,它不會持久存在。 該類的其他功能也可以使用,例如get()。 沒有例外出現。

-----------------------------AbstractDAOImpl.class-----------------------------------

@Transactional
@Repository
public abstract class AbstractDaoImpl<T> {

    private static final Logger LOG = Logger.getLogger(StockController.class);

    private Class currentClass;

    @PersistenceContext(type = PersistenceContextType.EXTENDED)
    protected EntityManager entityManager;

    protected void setThisClass(Class currentClass) {
        this.currentClass = currentClass;
    }

    @SuppressWarnings("unchecked")
    public T get(String id) {
        return (T) entityManager.find(currentClass, id);
    }

    public void delete(String id) {
        entityManager.remove(get(id));
    }

    public void update(T t) {
        entityManager.merge(t);
        entityManager.flush();
    }

    @SuppressWarnings("unchecked")
    public List list(String tableName) {
        return entityManager.createQuery("from " + tableName, currentClass).getResultList();
    }
}

------------------------Application.properties------------------------
 spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver
 spring.datasource.username=SYSTEM
 spring.datasource.password=password
 spring.datasource.url=jdbc:oracle:thin:@localhost:1521:XE
 spring.jpa.database-platform=Oracle11gDialect
 spring.datasource.type=org.apache.tomcat.jdbc.pool.DataSource

 spring.jpa.show-sql=true
 spring.jpa.hibernate.ddl-auto=update
 spring.jpa.hibernate.naming.strategy=org.hibernate.cfg.ImprovedNamingStrategy
 spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.Oracle8iDialect

 spring.resources.static-locations=file:src/main/resources/
 spring.resources.cache-period=0
 spring.thymeleaf.cache=false

 spring.http.converters.preferred-json-mapper=jackson

 security.basic.enabled=false
 security.headers.content-type=true
 security.enable-csrf=true
 security.basic.path=/**

我已經進行了各種嘗試來實現此處列出的其他修復程序,但是沒有碰到任何麻煩,包括從實體管理器開始進行事務處理,並以介於兩者之間的update()當前內容結束事務。 如果需要其他信息(例如實體類),請告訴我,我將對其進行編輯。

問題不是我的User對象沒有被保留,而是它里面的另一個實體館藏的列表不是。 為了解決這個問題,我像這樣在一對多注釋屬性列表中添加了cascade=CascadeType.ALL

@OneToMany(mappedBy = "user", cascade= CascadeType.ALL)
private List<UserHolding> holdings;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM