You need to remove the type parameter R from Resource, because you're not using it anywhere (except in the self-referential type bound on R itself). You must leave it on your Manager class, because you actually use it there.
Don't use integers for IDs.
Don't expose fields. Sub-classes may access private fields though protected accessors.
What Java version are you on?
Don't do database stuff from constructors. Constructors must be lightweight. Let factory methods retrieve properties from a database and make the constructor accept the properties you want to set.
Instead of returning defensive copies from methods, return unmodifiable views
What is a TTException?
Return an Optional from methods instead of null
Use upper type bounds when accepting a collection from which to retrieve elements.
Thing's generic type parameter T is unused. Remove it.
You have public and protected members in a package private class.
Your constructors are redundant.
ConcreteThingManager's name can be shortened to Manager, because ConcreteThing already provides a separate namespace for it.
ConcreteThingManager's class header doesn't do what you think it does. Instead of using the class ConcreteThing, you introduced a new type variable named ConcreteThing.
Just using the word singleton should send shivers up your spine
Note: A static nested class interacts with the instance members of its outer class (and other classes) just like any other top-level class. In effect, a static nested class is behaviorally a top-level class that has been nested in another top-level class for packaging convenience.
We always worry when we hear about singletons. Not sure I understand the last part of your reply:
I generally don't know if I'm just not programming very well, or if my domain is somewhat unique, I suspect a bit of both.
You would probably need to parameterise any methods using that Collection.
Why are you making an inner class public
Why didn't you make that nested class static?
Why have you got private setters? Wouldn't methods that add something to your Collection have to be public?
Frameworks such as React were essentially built to do what I think you want to do. Re-usable components.
Hopefully you account for the XSS implications here
This is what dependency management (like Maven) is for :-)
I think an important question is: What is the application used for? If it's intended to teach students, I would argue that including NPM and excluding jQuery are especially important
help of cutting edge technology developed by businesses