{"id":17004861,"url":"https://github.com/clickermonkey/rekord-java","last_synced_at":"2025-03-22T10:39:26.853Z","repository":{"id":12844064,"uuid":"15519704","full_name":"ClickerMonkey/Rekord-Java","owner":"ClickerMonkey","description":"An ORM for Java with intelligent loading and caching","archived":false,"fork":false,"pushed_at":"2014-01-30T03:04:32.000Z","size":2048,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-27T10:23:14.205Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ClickerMonkey.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-12-30T03:29:59.000Z","updated_at":"2016-09-22T06:28:12.000Z","dependencies_parsed_at":"2022-08-28T11:41:21.843Z","dependency_job_id":null,"html_url":"https://github.com/ClickerMonkey/Rekord-Java","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ClickerMonkey%2FRekord-Java","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ClickerMonkey%2FRekord-Java/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ClickerMonkey%2FRekord-Java/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ClickerMonkey%2FRekord-Java/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ClickerMonkey","download_url":"https://codeload.github.com/ClickerMonkey/Rekord-Java/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244945597,"owners_count":20536295,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-14T04:44:38.366Z","updated_at":"2025-03-22T10:39:26.835Z","avatar_url":"https://github.com/ClickerMonkey.png","language":"Java","readme":"Rekord\n======\n\nAn ORM for Java with intelligent loading and caching\n\n# TODO\n\n#### Features to Implement\n- ~~Validation (through Listeners)~~\n- ~~Initializers~~\n  - ~~Sequences~~\n  - Encrypted Fields\n  - Salted Encrypted Fields\n- ~~Partial Selection (like the first 100 characters of a text field)~~\n- ~~Application Caching (opposed to transaction caching)~~\n- ~~Native Queries~~\n\n#### Simple Changes\n- Model has BitSet of set values to quickly know that it already has a view\n- View has BitSet of fields (based on their indices)\n- ~~Caching options in Configuration~~\n- Import XML option\n- Many-to-Many field\n- Table Extensions (no way to know what the implementation is)\n- Table Polymorphism (distinction field)\n- Generic Pointer (distinction field, key)\n- Improve LazyList performance\n- Outer-Join fetching for one-to-one\n- ~~Cascade Save option [default=true]~~\n- ~~Schema option (global and table level) [default depends on database implementation]~~\n- Catalog option (global and table level) [default depends on database implementation]\n- ~~Dynamic-Insert option (if a field is given, supply it even if it's generated)~~\n- ~~Dynamic-Update option (only update what has changed)~~\n- SelectQuery.list returns LazyList\n- Select-Before-Update (ensure a change hasn't occurred since when the model was loaded)\n- ~~Formula Fields~~\n- Saving Order?\n\n#### Other Changes\n- Move all SQL to one place, make Transaction in charge of making all queries\n- ~~Only insert into history if one of the history columns will be updated~~\n- Only create and save OneToOne model if the field was selected OR it's an insert","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclickermonkey%2Frekord-java","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fclickermonkey%2Frekord-java","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclickermonkey%2Frekord-java/lists"}