无参数构造函数是一个要求(像Hibernate这样的工具在这个构造函数上使用反射来实例化对象).
我得到了这个手作波形的答案,但有人可以进一步解释吗?谢谢
我正在尝试在我的项目中实现域驱动设计。这是我的基Aggregate类:
public abstract class UUIDAggregate {
private final DomainEventPublisher domainEventPublisher;
protected void publish(DomainEvent domainEvent) {
domainEventPublisher.publish(domainEvent);
}
}
Run Code Online (Sandbox Code Playgroud)
假设我们有UserAccount聚合:
public class UserAccount extends UUIDAggregate {
private String email;
private String username;
private String password;
private String firstName;
private String lastName;
public void update() {
publish(new DomainEventImpl());
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的DomainEventPublisher:
public interface DomainEventPublisher {
void publish(DomainEvent event);
}
Run Code Online (Sandbox Code Playgroud)
这是DomainEventPublisherImpl:
@Component
public class DomainEventPublisherImpl implements DomainEventPublisher{
@Autowired
private ApplicationEventPublisher publisher;
public void publish(DomainEvent event){ …Run Code Online (Sandbox Code Playgroud) 所以我正在整理我的小型 Spring 项目,我注意到由于某种原因@OneToOne 注释没有为我完成它的工作,这反过来又导致另一个模型出现问题。
github 链接:https : //github.com/eamonmckelvey/sports-app
基本上,我有一个用户模型类、一个团队模型类和一个玩家模型类。我希望只有一个用户能够创建一支球队,而一支球队拥有许多球员。但是,我可以根据需要向用户添加任意数量的团队,这是错误的。
提供的所有答案都要求我为我的用户类添加一个无参数构造函数和一个构造函数,但是当我这样做时,我在课堂上注册时出现错误。
请帮忙。
@Entity
@Data
@NoArgsConstructor(access= AccessLevel.PRIVATE, force=true)
@RequiredArgsConstructor
public class User implements UserDetails {
@OneToOne(cascade = CascadeType.ALL,mappedBy = "user")
private Team team;
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy= GenerationType.AUTO)
private Long id;
private final String username;
private final String password;
//private final String fullname;
@Override
public Collection<? extends GrantedAuthority> getAuthorities() {
return Arrays.asList(new SimpleGrantedAuthority("ROLE_USER"));
}
@Override
public boolean isAccountNonExpired() {
return true;
}
@Override
public …Run Code Online (Sandbox Code Playgroud) 在 Java 中使用空构造函数可以吗?例如,从 MySQL 数据库加载数据时,我想执行以下操作:
ResultSet set = statement.executeQuery();
while (set.next()) {
Faction faction = new Faction();
faction.setId(UUID.fromString(set.getString("id")));
faction.setName(set.getString("name"));
}
Run Code Online (Sandbox Code Playgroud)
因为我已经有一个派系类的构造函数,
public Faction(Player player, UUID uuid) {}
Run Code Online (Sandbox Code Playgroud)
我想知道我是否可以有一个普通的构造函数并且只设置值和时间。
否则,我可以使用与 mySQL 数据匹配的参数(公共派系(字符串名称、UUID uuid、字符串公告等)来创建一个构造函数来加载......不确定什么是最佳实践?