我想知道是否可以在 hibernate 中使用 Java Bean Validation,以及它们如何相互集成。
我的数据层中有一个由 Jax-rs API 和 JPA 组成的堆栈。
我想知道是否可以使用 Java Bean 验证来验证我的 Hibernate 实体,而不使用 Spring。
javax.validation.contraints我可以使用 hibernate 中的注释以及Together中的注释吗
例如:
@Column(nullable = false)
@Size(min =8, max = 12)
@NotNull(message = "Phone Number must be entered")
private String phoneNumber;
Run Code Online (Sandbox Code Playgroud)
在这里,我指定该列通过 hibernate 和 bean 验证不能为空。
这是一个好的做法吗?
或者是否有其他方法可以在休眠中验证数据,而无需像这样的 bean 验证?
我的 Django-REST 应用程序中有两个模型。
一个ProjectRequest和一个ContactRequest
我想让每个人都这样Projectrequest contains a list of the refered Contactrequests.
class ProjectRequest(models.Model):
project_name = models.CharField(max_length=50)
company_name = models.CharField(max_length=50)
#make array of technologiestechnologies = models.ArrayField(base_field=) (blank=True)
project_description = models.CharField(max_length=200)
project_type = models.CharField(max_length=30)
budget_estimation = models.IntegerField(
default=1000,
validators=[
MinValueValidator(1800),
MaxValueValidator(5000000)
])
#time_estimation = models.DateTimeField(default=None, blank=True, null=True)
class ContactRequest(models.Model):
topic = models.CharField(max_length=30)
description = models.CharField(max_length=200)
time = models.CharField(max_length=15)
project_request = models.ForeignKey(ProjectRequest,
on_delete=models.CASCADE)
Run Code Online (Sandbox Code Playgroud)
到目前为止,我已经与外键建立了关系,到目前为止效果良好。不过,我想扩展功能,以便 ProjectRequest 包含所有项目请求的列表。我尝试过几个不同的字段,但没有任何运气,并且文档我只能找到ManyToMany和 的字段OneToOne。如何才能实现这一目标?
我正在使用 Flask 项目中的 SQLAlchemy ORM 框架。我想在我的一个模型中添加另一列。在我这样做之后,我曾经db.session.drop_all()删除数据库中的所有当前条目,然后我尝试使用新字段重新创建一个新实例。
每当我尝试时,我都会收到此错误
sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) no
such table: user
[SQL: SELECT user.id AS user_id, user.username AS user_username, user.email AS user_email, user.password AS user_password, user.image_file AS user_image_file
FROM user]
Run Code Online (Sandbox Code Playgroud)
我想我可能需要以某种方式重建数据库,但我不确定如何。我查看了文档,但找不到任何有用的东西。
__init__.py
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///site.db'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
Run Code Online (Sandbox Code Playgroud)
模型.py
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(20), unique=True, nullable=False)
email = db.Column(db.String(40), unique=True, nullable=False) #newly added field
password = db.Column(db.String(60), nullable=False)
image_file = db.Column(db.String(20), nullable=False, default='default.jpg')
messages = db.relationship('Message', backref='user', lazy=True)
Run Code Online (Sandbox Code Playgroud) 我创建了一个 Typescript DTO,我想在其中确保字符串列表(源自枚举类型)的类型安全。
export class ConnectedUserWithPhotosDTO extends UserWithPhotosDTO {
userTags: keyof User["userTags"][]
constructor(user: User, photos: ResponsePhotoDTO[]) {
super(user, photos)
console.log(user.userTags)
this.userTags = user.userTags;
}
}
Run Code Online (Sandbox Code Playgroud)
打字稿编译器抱怨以下错误:
Type 'UserTags[]' is not assignable to type 'number | keyof UserTags[][]'.
显然, 的值userTags评估为
number | keyof UserTags[][]
Run Code Online (Sandbox Code Playgroud)
这是我定义的枚举定义。
number | keyof UserTags[][]
Run Code Online (Sandbox Code Playgroud)
在 User 类中UserTags定义为:
@ApiProperty({ enum: UserTags, isArray: true, default: [] })
@Column('enum', { enum: UserTags, array: true, nullable: true, default: [] })
userTags: UserTags[]
Run Code Online (Sandbox Code Playgroud)
如何仅定义keyof特定枚举值的类型?
我有一个 Spring mvc 应用程序,@RestController类似于:
@RestController
@RequestMapping("levels")
public class LevelController {
private final GetLevelOneCount getLevelOneCount;
private final GetLevelTwoCount getLevelTwoCount;
private final GetLevelThreeCount getLevelThreeCount;
@Inject
public LevelController(GetLevelOneCount getLevelOneCount,
GetLevelTwoCount getLevelTwoCount,
GetLevelThreeCount getLevelThreeCount) {
this.getLevelOneCount = getLevelOneCount;
this.getLevelTwoCount = getLevelTwoCount;
this.getLevelThreeCount = getLevelThreeCount;
}
@GetMapping("/level1/{id}")
public LevelModel levelOne(@PathVariable String id) throws SQLException {
LevelModel levelOneModel = new LevelModel();
levelOneModel.setLevelQuery(getLevelOneCount.execute(id));
levelOneModel.setLevelDirQuery(getLevelOneCount.executeDir(id));
levelOneModel.setLevelDateQuery(getLevelOneCount.executeDate(id));
return levelOneModel;
}
Run Code Online (Sandbox Code Playgroud)
我LevelModel是一个带有私有变量的 POJO,现在我想知道,这是否可以序列化为带有私有变量的 propper JSON?
package com.pwc.tag.service.levels;
public class LevelModel {
private Long LevelQuery;
private Long …Run Code Online (Sandbox Code Playgroud) java ×2
python ×2
django ×1
flask ×1
hibernate ×1
javabeans ×1
model ×1
one-to-many ×1
rest ×1
spring ×1
spring-boot ×1
sqlalchemy ×1
typescript ×1