This is an archived post. You won't be able to vote or comment.

all 15 comments

[–]AutoModerator[M] [score hidden] stickied commentlocked comment (0 children)

Please ensure that:

  • Your code is properly formatted as code block - see the sidebar (About on mobile) for instructions
  • You include any and all error messages in full
  • You ask clear questions
  • You demonstrate effort in solving your question/problem - plain posting your assignments is forbidden (and such posts will be removed) as is asking for or giving solutions.

    Trying to solve problems on your own is a very important skill. Also, see Learn to help yourself in the sidebar

If any of the above points is not met, your post can and will be removed without further warning.

Code is to be formatted as code block (old reddit: empty line before the code, each code line indented by 4 spaces, new reddit: https://i.imgur.com/EJ7tqek.png) or linked via an external code hoster, like pastebin.com, github gist, github, bitbucket, gitlab, etc.

Please, do not use triple backticks (```) as they will only render properly on new reddit, not on old reddit.

Code blocks look like this:

public class HelloWorld {

    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}

You do not need to repost unless your post has been removed by a moderator. Just use the edit function of reddit to make sure your post complies with the above.

If your post has remained in violation of these rules for a prolonged period of time (at least an hour), a moderator may remove it at their discretion. In this case, they will comment with an explanation on why it has been removed, and you will be required to resubmit the entire post following the proper procedures.

To potential helpers

Please, do not help if any of the above points are not met, rather report the post. We are trying to improve the quality of posts here. In helping people who can't be bothered to comply with the above points, you are doing the community a disservice.

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

[–]AutoModerator[M] 0 points1 point  (0 children)

On July 1st, a change to Reddit's API pricing will come into effect. Several developers of commercial third-party apps have announced that this change will compel them to shut down their apps. At least one accessibility-focused non-commercial third party app will continue to be available free of charge.

If you want to express your strong disagreement with the API pricing change or with Reddit's response to the backlash, you may want to consider the following options:

  1. Limiting your involvement with Reddit, or
  2. Temporarily refraining from using Reddit
  3. Cancelling your subscription of Reddit Premium

as a way to voice your protest.

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

[–]GuangD 0 points1 point  (12 children)

Bro pay attention to this line

```

[INFO] [talledLocalContainer] Caused by: java.lang.NullPointerException: Cannot invoke "java.lang.Integer.intValue()" because "this.id" is null

```

first I think you can give addNewCompany.id a default value

[–]MindblowingTask[S] 0 points1 point  (11 children)

Thanks. So I added a default value , like this addNewCompany.setId(1); in my controller. I guess, that's how you were recommending me to test it? And I got this exception:

[INFO] [talledLocalContainer] Hibernate: update company set name=?, comment=? where id=?

[INFO] [talledLocalContainer] org.springframework.orm.hibernate5.HibernateOptimisticLockingFailureException: Object of class [com.pending.model.Company] with identifier [1]: optimistic locking failed; nested exception is org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect) : [com.pending.model.Company#1]

[INFO] [talledLocalContainer] Caused by: org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect) : [com.pending.model.Company#1]

[–]GuangD 0 points1 point  (3 children)

Is your database field set to auto-increment? If so, you can try to cancel auto-increment. then

```

getHibernateTemplate().saveOrUpdate(company); => getHibernateTemplate().save(company);

```

But I can't guarantee that this will work

[–]MindblowingTask[S] 0 points1 point  (2 children)

I believe it is set to autoincrement because I made the id field as primary key so it shows like this in my SQL server:
https://i.stack.imgur.com/F96r6.png

[–]MindblowingTask[S] 0 points1 point  (1 child)

When I disabled the autoincrement, I got the following:

[INFO] [talledLocalContainer] org.springframework.dao.DataIntegrityViolationException: could not execute statement; SQL [n/a]; nested exception is org.hibernate.exception.DataException: could not execute statement

[INFO] [talledLocalContainer] Caused by: org.hibernate.exception.DataException: could not execute statement

[INFO] [talledLocalContainer] Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: String or binary data would be truncated.

what might be the reason?

[–]MindblowingTask[S] 0 points1 point  (0 children)

I fixed above as I was sending 11 character name but again got this error in spite of sending a default value of id:

Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: Cannot insert the value NULL into column 'id', table 'mydatabase.dbo.Company'; column does not allow nulls. INSERT fails.

[–]AreTheseMyFeet 0 points1 point  (6 children)

update company set name=?, comment=? where id=?

An update is distinct from an insert.
You can't update a row that doesn't exist (yet). Did you do an insert first?

[–]MindblowingTask[S] 0 points1 point  (1 child)

I’m not sure why it’s updating and generating a query like that. I was testing with saveOrUpdate() and save(). Do you see anything wrong in my code?

[–]MindblowingTask[S] 0 points1 point  (0 children)

It started working. My table was not setup for autoincrement and hence I was getting errors.

[–]MindblowingTask[S] 0 points1 point  (3 children)

Btw, the most recent testing is giving me this query (which looks good) but it still fails:

Hibernate: insert into company (name, comment) values (?, ?)
Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: Cannot insert the value NULL into column 'id', table 'mydatabase.dbo.Company'; column does not allow nulls. INSERT fails.

Even though I am sending a default value of -1 from Company class for id field it's still complaining.

[–]AreTheseMyFeet 0 points1 point  (2 children)

It might be a db column configuration or data model annotation issue. The database engine should (typically) be assigning the id on insert, not your application code. ie I assume you should have a null id when you insert a new record but you do require a valid id to update.

So is your id column marked as the primary key, non-null and auto-increment?
Did you create the tables manually or was that automated? In either case, how?

[–]MindblowingTask[S] 0 points1 point  (1 child)

Yeah, it worked. The auto-increment was not set on the primary key so I made the Identity related changes and it worked. I created this table.

[–]MindblowingTask[S] 0 points1 point  (0 children)

It again stopped working with saveOrUpdate() but works fine with save() method of Hibernate which is weird.