https://github.com/actframework/act-beetlsql
beetlsql plugin for ActFramework
https://github.com/actframework/act-beetlsql
Last synced: 13 days ago
JSON representation
beetlsql plugin for ActFramework
- Host: GitHub
- URL: https://github.com/actframework/act-beetlsql
- Owner: actframework
- License: apache-2.0
- Created: 2017-03-02T01:02:18.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2020-11-29T04:09:32.000Z (about 5 years ago)
- Last Synced: 2024-03-21T13:10:52.349Z (almost 2 years ago)
- Language: Java
- Size: 82 KB
- Stars: 9
- Watchers: 5
- Forks: 6
- Open Issues: 15
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# BeetlSQL Plugin for ActFramework
Allow ActFramework application to use [BeetlSQL](http://ibeetl.com/)
**Special note on v1.5.0**
Because Act DB updated the transaction handling framework with act-sql-common-1.4.0, it will not send events about TX entering and exit, instead it just set the global state `TxContext`, which should be pulled by each database access layer implementation when tx is really needed. For example
* act-jpa-common - The TxContext will get visited when
1. `JPADao`'s save/delete/update methods get called
2. `EntityManager` instance is about to get injected
* act-ebean - The TxContext will get visited when
1. `EbeanDao`'s save/delete/upate methods get called
Unfortunately beetlsql integration doesn't provide the support for the above mechanism. Thus in order to apply transactional scope to your app with beetlsql as the database access layer, you must use `@With(BeetlSqlTransactional.class)` as demonstrated below:
```java
@SuppressWarnings("unused")
@With(BeetlSqlTransactional.class)
public class Todo {
@Inject
private TodoItem.Mapper mapper;
@GetAction
public void home() {}
@GetAction("/list")
public Iterable list(String q) {
// mapper.all();
return mapper.all();
}
@PostAction("/list")
public void post(String desc) {
TodoItem item = new TodoItem();
item.setDesc(desc);
mapper.insert(item);
}
}
```