Quarkus upgrade, hibernate schemavalidation fails - quarkus

I'm getting the following error:
13:30:44 ERROR [io.qua.hib.orm.run.sch.SchemaManagementIntegrator] (Hibernate post-boot validation thread for <default>) Failed to validate Schema: Schema-validation: missing table [DispatchTransactionMetricEntity]
The message is correct. There is no table DispatchTransactionMetricEntity.
My entity is just a #SqlResultSetMapping collecting results from several other tables. The added annotation #Entity is mandatory for this to work. However, it seems to trigger some kind of validation causing errors in the log to appear.
So: is there a way to fix this?
Update: In the mean time I found the setting: 'quarkus.hibernate-orm.validate-in-dev-mode=false'. That seems to avoid the error message. But it still raises the question whether its right to assume that each #Entity is also an #Table..

Related

How to check thrown errors during Sequelize validation execution

I have a sequelize model, which needs custom validation. That custom validation relies on some foreign keys being valid (valid as in valid uuid, not checked that they exist in db) on a record. There is also another validator appended that checks for mutual exclusivity of the foreign keys (only one can be present at the same time). After all this, I access the database in another validator to fetch data from another collection. I dont want this to happen if any of above validators fail because I dont want to access the database if I dont have to and I dont want to check if uuid is valid again because that is a job for one of previous validators.
The order is like so:
check if field contains valid type (uuid) - field type validator
check that field is not clashing with another field (mutually exclusive) - model-wide validator
fetch record from another collection to do further validation - model-wide validator
I want to check if previous validator has already thrown an error and not execute the next one if it has. Even better if I can check which one has thrown an error. Sequelize executes all validators even if error was already thrown. In documentation it says:
Any error messages collected are put in the validation result object
alongside the field validation errors, with keys named after the
failed validation method's key in the validate option object. Even
though there can only be one error message for each model validation
method at any one time, it is presented as a single string error in an
array, to maximize consistency with the field errors.
I tried several ways to access this "error" object but to no avail. Is there a way at all to know if error was already thrown by one of previous validators?

Hibernate looking for column which I've marked as #Transient

I have a JPA entity with a few fields which is running well. I now am adding a new field and have marked it #Transient as I donot want it to be persisted. However on running tests or deploying the app I get an error stating: Caused by: org.hibernate.HibernateException: Missing column: columnName in dbname.tableName
Why is Hibernate looking for the column in the database schema even though I've marked it to be Transient?
Was a mistake on my part. Was using org.springframework.data.annotation.Transient whereas should've been using javax.persistence.Transient.

Invalid Attribute name while getting collection : Magento

I am getting the following error -
Fatal error: Uncaught exception 'Mage_Eav_Exception' with message 'Invalid attribute name: subcategory_id.' in /home/dev-cm/public_html/magento2/app/Mage.php:536 Stack trace: #0 /home/dev-cm/public_html/magento2/app/code/core/Mage/Eav/Model/Entity/Collection/Abstract.php(1155)
Mage::exception('Mage_Eav', 'Invalid attribu...') #1 /home/dev-cm/public_html/magento2/app/code/core/Mage/Eav/Model/Entity/Collection/Abstract.php(1240)
I have actually added a custom field directly to the table in the database. It was already a custom table too. For making entries too setSubcategoryId() method didn't work. So I saved it through making db connection and saving it through query which is not good idea.
But getSubcategoryId() method worked for getting this field value from collection. Now I am trying to get records for filtering through this field but it's not working and showing the above error. Below is the code that's showing this error -
Mage::getModel('catalog/merchant')->getCollection()->addFieldToFilter('subcategory_id','123');
I searched about it a lot but didn't found any solution. I also flushed magenta cache and re-indexed data but it didn't work. I think I need changes in core files but I don't know what and how to do them.
So I need to get setSubcategoryId() method and the above error fixed for this custom field
i guess you are extending the wrong collection... you are using (extending) an eav collection while you should extend a mysql4 collection.

sequel migration error ,relation already exists?

I just created a new migration file for my ruby project (e.g. 003_foo3.rb)
I use sequel 3.48.
Test in local first
$sequel -m ~/myproject/db/migration postgres://postgres#localhost/myproject_db
Error: Sequel::DatabaseError: PG::Error: ERROR: relation "bank" already exists
that 'bank' table is already in first migration file (001_foo1.rb)
I thought sequel tracks migration that already run?
What am I missing?
I feel your pain, as I get similar error messages from Sequel here and then.
Sequel creates a table called schema_info in your app database to track migrations you ran.
create_table(:schema_info) do
column :version, "int(11)", :default=>0, :null=>false
end
Either using timestamps or integer versions.
Your error message might be due to Sequel not creating that table or because you recreated your application database from scratch, in which case the schema version has been lost, thus creating your error message.
It's not possible to say what exactly happened given the information you have given.
I occasionally get similar errors, and I comment out all the migration code in the migration file, run the migrations, and then uncomment the code again.
If you are sure that you have already run a certain migration you can change the value of version field in the schema_info table.
Supposing you have the following migrations:
001_some_migration.rb
002_some_other_migration.rb
...and you already ran 001, and you get an "already exists" error, then you can set schema_info.version = 1 and run your migrations, again. Migration #1 will not be executed, but #2 will be executed directly.

How does validation work in database-first dbContext (EF4.3.1 & MVC3)?

How does validation work in database-first DbContext (EF4.3.1 & MVC3)?
I'm doing this (yes, it's VB):
If ModelState.IsValid Then
db.SaveChanges()
But the SaveChanges throws DbEntityValidationException with the following message:
Validation failed for one or more entities. See
'EntityValidationErrors' property for more details.
I expect it to return the view again with the appropriate validation messages, but clearly I'm missing something because I don't know why it should work that way! You would expect Google to help, but most examples seem to be code-first.
This is database first, so the model has been generated. I would expected the validation constraints to be generated too (at least simple ones like NOT NULL in SQL Server) , but that doesn't seem to work.
Oddly, some fields are working as expected and others aren't.
For example, I have a non-nullable text field in the database. It appears as non-nullable in the EF designer and in the generated code. But when I submit it, I get the exception instead of returning the form with the field highlighted.
On the other hand, I have a date field that is non-nullable. It is checked prior to trying to update the database, and the form is presented again with the field highlighted for correction.

Resources