NutzCN Logo
问答 多对多关系insertWith如何自动赋值createAt
发布于 1351天前 作者 junk123321 1007 次浏览 复制 上一个帖子 下一个帖子
标签:

insert pojo会触发@Prev,实现如下的createAt自动赋值

@Column("createAt")
    @Prev(els = @EL("now()"))
    private Date createAt;

但多对多的关系,insertWith的时候,如何为插入到中间表org_user_position,自动为createAt赋值?

@Table("org_position")
public class Position {

    @Name
    private String name;

    @ManyMany(relation = "org_user_position", from = "positionId", to = "userId")
    private List<User> users;

}
2 回复

试试@PrevInsert

谢谢回复! insertWith和insertRelation依然没有为org_user_position的insert加上createAt
@PrevInsert貌似只能对dao.insert(obj)的obj起作用,关联表不起作用

// insert语句
        List positions = new ArrayList<Position>();
        positions.add(new Position(positionName, org.getId()));
        User user = dao.fetch(User.class, userName);
        if (user == null) {
            user = new User(userName, userLogin, userPassword);
            user.setPositions(positions);
            dao.insertWith(user, "positions");
        } else {
            user.setPositions(positions);
            dao.insertRelation(user, "positions");
        }
// 生成的sql
INSERT INTO org_user_position(userId,positionId) VALUES(?,?) 
添加回复
请先登陆
回到顶部