最近我尝试通过写一个Kotlin + Exposed
演示来学习Kotlin。
使用Java + MyBatis
的常见步骤如下:创建Java Bean类、Map器类、服务类和服务实现类
@Data class UserBean { String username; String password; }
@Mapper interface UserMapper extends BaseMapper<UserBean> {}
interface UserService extends BaseService<UserBean> {}
@Service UserSerivceImpl extends BaseServiceImpl<UserBean> implements UserService {}
然后,这些JavaBean类将用于系统的任何其他部分,以进行数据库IO和JSON序列化。
// create instance and convert to JSON
var user = new UserBean();
user.setUsername("username");
user.setPassword("password");
var om = new ObjectMapper();
var json = om.valueToTree(user);
在official doc of Exposed DAO API之后,我创建了这些类:
class User(id : EntityID<Int>) : IntEntity(id)
{
companion object : IntEntityClass<User>(Users)
var username by Users.username
var password by Users.password
}
object Users : IntIdTable()
{
val username = varchar("username", 64)
val password = varchar("password", 64)
}
User.all()
和User.new { }
api在执行数据库IO时工作正常,但直接创建示例会抛出异常:
一个三个三个一个
Post here说 * Exposed不允许自己创建DAO对象 *。那么,有没有一种简单的方法可以重用这些DAO类进行JSON序列化或在程序的各个部分之间传输数据?我应该创建一个具有相同数据字段的DTO类吗?
1条答案
按热度按时间h79rfbju1#
Exposed Entities是有状态的对象,你不应该直接序列化它们,相反,正如你提到的,你应该使用一个简单的数据类,带有与你相关的序列化注解。
例如: