Пожалуйста, проверьте вопрос, который изменен снова не только личность, но и последовательность, авто и таблицы, я попробовал все

ользую базу данных MySQL.

В моей таблице есть два основных ключа, из которых один автоматически увеличивается.

@Embeddable
    public class EmployeeId implements Serializable {
        /**
         * 
         */
        private static final long serialVersionUID = 1L;
        @Column(name = "id", nullable = false)// 
         This is just Pk  in mysql table
        **private int id;**
        // I have  tried and @GeneratedValue(strategy = GenerationType.IDENTITY),
        @GeneratedValue(strategy = GenerationType.IDENTITY) 
        //and @GeneratedValue(strategy = GenerationType.TABLE)
        //@GeneratedValue(strategy = GenerationType.AUTO, generator = "id") @SequenceGenerator(name = "id", sequenceName = "id")
     **this is auto incremented and pk in mysql table**
        @Column(name = "gender_key", nullable = false)
        private int gender_key;

        }



        @Entity
        @Table(name = "employee")
        public class employee {
        @EmbeddedId
        private EmployeeId employeeId;

        private String emp_name;
        private String mobile_no;

        employee() {
        }}

        public interface employeeRepository extends
            JpaRepository<employee, EmployeeId> {
        }

В моем контроллере я хочу идентификатор после employeeRepository.save (bean); метод, потому что я хочу сохранить этот идентификатор в другой БД.

logger.info ("пол_ключа --->" + пол_ключа);

Но я всегда получаю 0 значения гендерного ключа.

Вот что я попробовал:

bean = employeeRepository.save(bean)
int gender_key= bean.getGender_key();
logger.info("gender_keyis --- > "+gender_key);

Но все равно значение для полового ключа 0 (ноль). Или любой запрос, который я должен написать в хранилище.

Как я могу получить автоматически увеличенное значение гендерного ключа, который вставлен в таблицу MySQL?

Пожалуйста помоги.

Заранее спасибо.

Ответы на вопрос(2)

@Id не должен совпадать со столбцами базы данных PK. Пока это уникально, это все, что имеет значение.

Изhttps://en.wikibooks.org/wiki/Java_Persistence/Identity_and_Sequencing:

Идентификатор JPA не всегда должен соответствовать ограничению первичного ключа таблицы базы данных, а также не требуется первичный ключ или уникальное ограничение.

Поскольку ваш столбец автоинкремента гарантированно будет уникальным, просто используйте пол_ключа в качестве@ID и идентификатор карты как обычный столбец.

@Entity
@Table(name = "employee")
public class employee {

   @Id
   @GeneratedValue(strategy = GenerationType.IDENTITY) 
   private int genderKey;

   @Column
   private int id;

}

Честно говоря, я нахожу вашу схему непонятной.

Я также предложил бы прочитать следующее:

https://www.javatpoint.com/java-naming-conventions

id поле. В зависимости от его значений, вы можете выбрать стратегию генерации, например, последовательности, таблицы идентификаторов, автоматическую генерацию внутренних идентификаторов. И последнее, но не менее важное: GenerationType.AUTO выберет одну из упомянутых стратегий. Смотрите Javadocs дляjavax.persistence.GeneratedValue а такжеjavax.persistence.GenerationType.

 Radhika Mantri22 сент. 2017 г., 09:15
Пожалуйста, проверьте вопрос, который изменен снова не только личность, но и последовательность, авто и таблицы, я попробовал все
 Radhika Mantri22 сент. 2017 г., 08:49
Я пытался @GeneratedValue (стратегии = GenerationType.IDENTITY) @GeneratedValue (стратегии = GenerationType.TABLE) @GeneratedValue (стратегии = GenerationType.SEQUENCE) @GeneratedValue (стратегии = GenerationType.AUTO) ни один из них не работает
 Florian Fray22 сент. 2017 г., 09:13
Где вы положили @GeneratedValue? Это должен быть @ Id @GeneratedValue (...) private int id;
 Radhika Mantri22 сент. 2017 г., 09:07
Вещи, которые я пробовал: employee bean = employeeRepository.save (bean); int sex_key = bean.gender_key (); logger.info ("пол_ключа --->" + пол_ключа); Я не получаю значение для этого гендерного ключа, который является pk, а также автоинкрементным, я дал код выше
 Florian Fray22 сент. 2017 г., 09:02
Пожалуйста, обновите ваш пример кода вашими попытками, тогда мы, скорее всего, увидим, в чем проблема.

Ваш ответ на вопрос