Home > Software design >  How to Update a SQL database Table if the entity is Persistable in Spring Boot JPA
How to Update a SQL database Table if the entity is Persistable in Spring Boot JPA

Time:10-12

I have created a Spring Boot JPA Application, In that, I have made an entity persistable. as Shown Below. this is my code for creating an entity:

@Getter
@Setter
@ToString
@Entity
public class TableModel implements Persistable<String> {

    @Override
    public String toString() {
        return "TableModel [PrimaryKey="   PrimaryKey   ", Term_Guid="   Term_Guid   ", Term_Name="   Term_Name
                  ", Term_Description="   Term_Description   ", Term_Qualified_Name="   Term_Qualified_Name
                  ", Term_Status="   Term_Status   ", Term_Created_Date="   Term_Created_Date   ", Term_Updated_Date="
                  Term_Updated_Date   ", Report_name="   Report_name   ", Report_Guid="   Report_Guid   ", Report_Type="
                  Report_Type   ", classification="   classification   ", Term_Expert_Username="   Term_Expert_Username
                  ", Term_Steward_Username="   Term_Steward_Username   ", Report_Expert_Username="
                  Report_Expert_Username   ", Report_Owner_Username="   Report_Owner_Username   ", Sql_db_load_time="
                  Sql_db_load_time   "]";
    }
    @Id
    @Column(name = "Primary_Key")
    private String PrimaryKey;
    
    @Column(name = "Term_Guid")
    private String Term_Guid;

    @Column(name = "Term_Name")
    private String Term_Name;

    @Column(name = "Term_Description",columnDefinition = "nvarchar(MAX)")
    private String Term_Description;

    @Column(name = "Term_Qualified_Name")
    private String Term_Qualified_Name;

    @Column(name = "Term_Status")
    private String Term_Status;

    @Temporal(TemporalType.TIMESTAMP)
    private java.util.Date Term_Created_Date;

    @Temporal(TemporalType.TIMESTAMP)
    private java.util.Date Term_Updated_Date;

    @Column(name = "Report_name")
    private String Report_name;
    
    @Column(name = "Report_Guid")
    private String Report_Guid;
    
    @Column(name = "Report_Type")
    private String Report_Type;
    
    @Column(name = "Classification")
    private String classification;
    
    @Column(name = "Term_Expert_Username")
    private String Term_Expert_Username;
    
    @Column(name = "Term_Steward_Username")
    private String Term_Steward_Username;
    
    @Column(name = "Report_Expert_Username")
    private String Report_Expert_Username;
    
    @Column(name = "Report_Owner_Username")
    private String Report_Owner_Username;
    
    @Temporal(TemporalType.TIMESTAMP)
    private java.util.Date Sql_db_load_time;


    @Override
    public boolean isNew() {
        // TODO Auto-generated method stub
        return true;
    }
    
@Override
public String getId() {
    // TODO Auto-generated method stub
    return null;
}
    
}

By using this Code I am able to insert data successfully but if I want to update the data which is inserted I m not able do, Please Suggest how I can update the data if the entity is persistable using Springboot jpa

CodePudding user response:

If you are not clear how to fire update queries with spring data jpa,

You can refer this document for partial updates:

https://www.baeldung.com/spring-data-partial-update

You can also refer spring data jpa documentation.
https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#jpa.modifying-queries

CodePudding user response:

I suggest you keep your entity simple, then create a repository that extends JpaRepository or CrudRepository where you can write your queries

@Repository
public interface TableModelRepository extends JpaRepository<TableModel, String>{

@Modifying
@Query("update TableModel u set u.firstname = ?1 where u.lastname = ?2")
void updateTable(String firstname, String lastname);

}

create a service class where you can perform the update

@Service
public class TableModelServices{
 
    @Autowired
    private TableModelRepository tableModelRepository;
    
    @Override
    public String updateTable(String firstname, String lastname) {
        tableModelRepository.updateTable(firstname, lastname);
        return null;
    }


}

the above codes are for reference, I will mention some links which will help you more https://www.baeldung.com/spring-data-jpa-dynamicupdate

https://www.baeldung.com/spring-data-partial-update

you can refer to these two links.

  • Related