Comments (2)
Thanks @vierbergenlars . I see what you are asking for. I think I would have to make it configurable so I need to look into how best to do that (given its depth in the architecture).
Just curious on your opinion in general. I think this can be easily solved in the application later with an @PostLoad
annotation on Person
; i.e:
@PostLoad
private void initData() {
if(picT == null) {
picT = new Content();
}
}
Would that work for you all? Or are there reasons/justifications why that wouldn't work (well) beyond keeping the app model simple?
from spring-content.
Putting some code in @PostLoad
would work, but I consider that a workaround for this bug.
Although it's perhaps a small detail, the response provided by spring-data-rest would also be impacted, instead of looking like I would expect, we will have an object with all null fields when there is no content.
Expected | Actual |
---|---|
{
"id": "830ccc3d-5131-4285-b462-2f0995e5f492",
"name": "xyz",
"picture": null
} |
{
"id": "830ccc3d-5131-4285-b462-2f0995e5f492",
"name": "xyz",
"picture": {
"length": null,
"mimetype": null,
"filename": null
}
} |
You might consider it a detail, but this makes it more difficult for API users to check if there is content.
Adding some code to every entity that uses content is certainly possible, but to me it feels like additional effort that should not be needed to be able to use spring-content.
I think I would have to make it configurable
If taking the second approach (setAutoGrowNestedPaths
in write paths; catching NullValueInNestedPathException
and treating it as null
in read paths) does not need configuration.
I can't immediately think of a situation where you would want an exception while trying to read/write content. That effectively makes two paths that need to be handled for the "no content present" case, one with the read returning null, and one with it throwing an (undeclared/undocumented) exception which is an internal implementation detail.
from spring-content.
Related Issues (20)
- Circular references in `AzureStorageConfiguration` during application startup HOT 1
- Spring-Content-JPA 2.9.0 nullpointer exception trying to setContent HOT 3
- Unable to use @EnableS3Stores in junit test annotated with @DataJpaTest HOT 9
- LockingAndVersioningRepositoryImpl seems to be shared between multiple repositories but caches EntityInformation HOT 2
- S3ContentStore, FilesystemContentStore, etc extend deprecated ContentStore HOT 2
- spring-content-fs depends on old version of Hibernate
- @ContentLength field is set to 0 instead of null for nullable types
- POST to content-property without content-type results in NPE / HTTP-500 HOT 1
- Link relation and path configured with @RestResource ignored for content properties with multiple capital letters HOT 1
- Do not include junit as compile dependency
- Exception with unsetContent using SB3 and SC3.0.4 JPA Starter HOT 1
- File download not working on windows platform HOT 1
- How do I configure com.github.paulcwarren:spring-content-bom for spring boot kotlin gradle? HOT 1
- Hibernate dependency error HOT 4
- No suitable HttpMessageConverter found to read request body into object of type class com.example.demo.entity.client.image.Avatar from request with content type of image/png;charset=UTF-8 HOT 8
- Investigation into the cause of `java.lang.NullPointerException: Cannot invoke "org.springframework.content.commons.storeservice.StoreInfo.getInterface()" because the return value of "internal.org.springframework.content.rest.io.StoreResource.getStoreInfo()" is null`
- Maven build error with Graal VM on Spring Content HOT 4
- Crash when use FileSystemResourceLoader in the latest version of spring boot HOT 1
- Not compatible with Spring Boot 3.2: method Assert.notNull(Object) does not exist HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from spring-content.