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.